public void Save(Beetle.BufferWriter writer)
        {
            writer.Write(Message.GetType().Name);
            Beetle.ByteArraySegment segment = mArrayPool.Pop();
            using(System.IO.Stream stream = new System.IO.MemoryStream(segment.Array))
            {
                ProtoBuf.Meta.RuntimeTypeModel.Default.Serialize(stream, Message);
                segment.SetInfo(0, (int)stream.Position);

            }
            writer.Write(segment);
            mArrayPool.Push(segment);
        }
 public void Save(Beetle.BufferWriter writer)
 {
     writer.Write(Message.GetType().FullName);
     byte[] data;
     using (System.IO.Stream stream = new System.IO.MemoryStream())
     {
         ProtoBuf.Meta.RuntimeTypeModel.Default.Serialize(stream, Message);
         data = new byte[stream.Length];
         stream.Position = 0;
         stream.Read(data, 0, data.Length);
     }
     writer.Write(data);
 }
示例#3
0
 protected override void WriteMessageType(Beetle.IMessage msg, Beetle.IDataWriter writer)
 {
     if (msg is ListUsers)
     {
         writer.Write(1);
     }
     else if (msg is ListUsersResponse)
     {
         writer.Write(2);
     }
     else if (msg is Register)
     {
         writer.Write(3);
     }
     else if (msg is UnRegister)
     {
         writer.Write(4);
     }
     else if (msg is RegisterResponse)
     {
         writer.Write(5);
     }
     else if(msg is Say )
     {
         writer.Write(6);
     }
     else if (msg is OnRegister)
     {
         writer.Write(7);
     }
     else
     {
         writer.Write(-1);
     }
   
 }
示例#4
0
文件: List.cs 项目: hdxhan/IKendeLib
 public override void Save(Beetle.IDataWriter writer)
 {
     base.Save(writer);
     writer.Write(Users);
 }
示例#5
0
 public void Save(Beetle.IDataWriter writer)
 {
     writer.WriteUTF(Name);
     writer.WriteUTF(EMail);
     writer.Write(ResponseTime);
 }
示例#6
0
 public virtual void Save(Beetle.IDataWriter writer)
 {
     writer.Write(ID);
 }
示例#7
0
 public void Save(Beetle.IDataWriter writer)
 {
     writer.Write(Name);
     writer.Write(IP);
 }