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()); }
/** * 将一个ByteBuffer的有效字节区写入此缓存区中 */ public void Write(ByteBuffer buffer) { if (buffer == null) return; if (buffer.ReadableBytes() <= 0) return; WriteBytes(buffer.ToArray()); }