コード例 #1
0
 public static Offset <ProtocolMessage> CreateProtocolMessage(FlatBufferBuilder builder,
                                                              int id = 0,
                                                              VectorOffset bodyOffset = default(VectorOffset))
 {
     builder.StartObject(2);
     ProtocolMessage.AddBody(builder, bodyOffset);
     ProtocolMessage.AddId(builder, id);
     return(ProtocolMessage.EndProtocolMessage(builder));
 }
コード例 #2
0
        static byte[] ToProtocolMessage(int id, byte[] body)
        {
            var fbb     = new FlatBufferBuilder(body.Length + InitialBufferSize);
            var bodyPos = ProtocolMessage.CreateBodyVector(fbb, body);

            ProtocolMessage.StartProtocolMessage(fbb);
            ProtocolMessage.AddId(fbb, id);
            ProtocolMessage.AddBody(fbb, bodyPos);
            var msg = ProtocolMessage.EndProtocolMessage(fbb);

            ProtocolMessage.FinishProtocolMessageBuffer(fbb, msg);

            var buffer     = fbb.DataBuffer;
            var bufferSize = buffer.Length - buffer.Position;
            var head       = BitConverter.GetBytes(bufferSize);

            var bytes = new byte[head.Length + bufferSize];

            Array.Copy(head, 0, bytes, 0, head.Length);
            Array.Copy(buffer.Data, buffer.Position, bytes, head.Length, bufferSize);

            return(bytes);
        }