예제 #1
0
        private byte[] Encode(Header header, TBase message)
        {
            byte[] headerBytes = ThriftSerialize.Serialize(header);

            byte[] messageBytes = ThriftSerialize.Serialize(message);

            ByteBuffer buffer = ByteBuffer.Allocate(512);

            buffer.WriteInt(ThriftMessageHelper.GetMessageId(message));
            buffer.WriteInt(headerBytes.Length);
            buffer.WriteBytes(headerBytes);
            buffer.WriteInt(messageBytes.Length);
            buffer.WriteBytes(messageBytes);

            return(buffer.ToArray());
        }
예제 #2
0
 /**
  * 将一个ByteBuffer的有效字节区写入此缓存区中
 */
 public void Write(ByteBuffer buffer)
 {
     if (buffer == null) return;
     if (buffer.ReadableBytes() <= 0) return;
     WriteBytes(buffer.ToArray());
 }