示例#1
0
 public override void WriteMessageBegin(Message message)
 {
     if (strictWrite_)
     {
         uint version = VERSION_1 | (uint)(message.Type);
         WriteI32((int)version);
         WriteString(message.Name);
         WriteI32(message.SeqID);
     }
     else
     {
         WriteString(message.Name);
         WriteByte((byte)message.Type);
         WriteI32(message.SeqID);
     }
 }
示例#2
0
 /**
 * Write a message header to the wire. Compact Protocol messages contain the
 * protocol version so we can migrate forwards in the future if need be.
 */
 public override void WriteMessageBegin(Message message)
 {
     WriteByteDirect(PROTOCOL_ID);
     WriteByteDirect((byte)((VERSION & VERSION_MASK) | ((((uint)message.Type) << TYPE_SHIFT_AMOUNT) & TYPE_MASK)));
     WriteVarint32((uint)message.SeqID);
     WriteString(message.Name);
 }
示例#3
0
 public override Message ReadMessageBegin()
 {
     Message message = new Message();
     int size = ReadI32();
     if (size < 0)
     {
         uint version = (uint)size & VERSION_MASK;
         if (version != VERSION_1)
         {
             throw new ProtocolException(ProtocolException.BAD_VERSION, "Bad version in ReadMessageBegin: " + version);
         }
         message.Type = (MessageType)(size & 0x000000ff);
         message.Name = ReadString();
         message.SeqID = ReadI32();
     }
     else
     {
         if (strictRead_)
         {
             throw new ProtocolException(ProtocolException.BAD_VERSION, "Missing version in readMessageBegin, old client?");
         }
         message.Name = ReadStringBody(size);
         message.Type = (MessageType)ReadByte();
         message.SeqID = ReadI32();
     }
     return message;
 }
示例#4
0
 public abstract void WriteMessageBegin(Message message);