コード例 #1
0
 internal static PooledBuffer CreatePacket(PacketContents contentType, int contentFlags, byte[] payload)
 {
     if (s_writer == null)
         s_writer = new CtpObjectWriter();
     var wr = s_writer;
     wr.Clear();
     wr.Write((byte)contentType);
     wr.Write(contentFlags);
     wr.Write(payload);
     return wr.TakeBuffer();
 }
コード例 #2
0
 public override void Save(T?obj, CtpObjectWriter writer)
 {
     if (obj.HasValue)
     {
         m_serializeT.Save(obj.Value, writer);
     }
     else
     {
         //ToDo: What if the enum is a complex data type.
         writer.Write(null);
     }
 }
コード例 #3
0
 public void Save(bool isNull, T1 item1, T2 item2, CtpObjectWriter writer)
 {
     if (isNull)
     {
         writer.Write(false);
     }
     else
     {
         writer.Write(true);
         m_serializeT1.Save(item1, writer);
         m_serializeT2.Save(item2, writer);
     }
 }
コード例 #4
0
 public override void Save(TEnum obj, CtpObjectWriter writer)
 {
     if (obj == null)
     {
         writer.Write(-1);
     }
     else
     {
         writer.Write(obj.Count());
         foreach (var item in obj)
         {
             m_serializeT.Save(item, writer);
         }
     }
 }
コード例 #5
0
 public override void Save(TDictionary obj, CtpObjectWriter writer)
 {
     if (obj == null)
     {
         writer.Write(CtpObject.Null);
     }
     else
     {
         writer.Write(obj.Count());
         foreach (var item in obj)
         {
             m_serializeT.Save(false, item.Key, item.Value, writer);
         }
     }
 }
コード例 #6
0
        private void Test(List <CtpObject> data)
        {
            var wr = new CtpObjectWriter();

            for (var x = 0; x < data.Count; x++)
            {
                var o = data[x];
                wr.Write(o);
            }

            var rd = new CtpObjectReader(wr.ToArray());

            for (var x = 0; x < data.Count; x++)
            {
                var o  = data[x];
                var oo = rd.Read();
                if (!o.Equals(oo))
                {
                    throw new Exception($"Not Equal {o} {oo} on record {x}");
                }
            }
        }
コード例 #7
0
 public override void Save(T obj, CtpObjectWriter writer)
 {
     if (obj == null)
     {
         if (m_isRootElement)
         {
             throw new Exception("Root element cannot be null");
         }
         writer.Write(false);
     }
     else
     {
         if (BeforeSave != null)
         {
             foreach (var item in BeforeSave)
             {
                 item(obj);
             }
         }
         if (!m_isRootElement)
         {
             writer.Write(true);
         }
         foreach (var item in m_records)
         {
             item.Save(obj, writer);
         }
         if (AfterSave != null)
         {
             foreach (var item in AfterSave)
             {
                 item(obj);
             }
         }
     }
 }
コード例 #8
0
            public override void Save(object obj, CtpObjectWriter writer)
            {
                var item = m_get(obj);

                m_io.Save(item, writer);
            }
コード例 #9
0
 public override void Save(string obj, CtpObjectWriter writer)
 {
     writer.Write((CtpObject)obj);
 }
コード例 #10
0
 public override void Save(CtpCommand obj, CtpObjectWriter writer)
 {
     writer.Write((CtpObject)obj);
 }
コード例 #11
0
 public override void Save(char[] obj, CtpObjectWriter writer)
 {
     writer.Write((CtpObject)obj);
 }
コード例 #12
0
 public override void Save(byte[] obj, CtpObjectWriter writer)
 {
     writer.Write(obj);
 }
コード例 #13
0
 public override void Save(T obj, CtpObjectWriter writer)
 {
     writer.Write(obj.ToString());
 }
コード例 #14
0
 public override void Save(T obj, CtpObjectWriter writer)
 {
     m_io.Save(obj, writer);
 }
コード例 #15
0
 public override void Save(KeyValuePair <TKey, TValue> obj, CtpObjectWriter writer)
 {
     writer.Write(true);
     m_serializeT.Save(false, obj.Key, obj.Value, writer);
 }
コード例 #16
0
 public NormalEncoder()
 {
     m_stream = new CtpObjectWriter();
     Clear();
 }
コード例 #17
0
 public override void Save(decimal obj, CtpObjectWriter writer)
 {
     writer.Write((CtpObject)obj);
 }
コード例 #18
0
 public MetadataRowEncoder(List <MetadataColumn> columns)
 {
     m_columns = columns;
     m_stream  = new CtpObjectWriter();
 }
コード例 #19
0
 public override void Save(CtpTime obj, CtpObjectWriter writer)
 {
     writer.Write((CtpObject)obj);
 }
コード例 #20
0
 public override void Save(ushort obj, CtpObjectWriter writer)
 {
     writer.Write((CtpObject)obj);
 }
コード例 #21
0
 public abstract void Save(T obj, CtpObjectWriter writer);
コード例 #22
0
 public override void Save(CtpNumeric?obj, CtpObjectWriter writer)
 {
     writer.Write((CtpObject)obj);
 }