Пример #1
0
        public void Serialize(BEWriter bw)
        {
            LEWriter payloadWriter = new LEWriter();

            Payload.Serialize(payloadWriter);

            long payloadLength = payloadWriter.BaseStream.Length;

            if (payloadLength % 4 != 0)
            {
                // ANSI X.923 padding, 4 byte alignment
                byte[] padding = new byte[4 - (payloadLength % 4)];
                padding[padding.Length - 1] = (byte)padding.Length;
                payloadWriter.Write(padding);
                Header.Padding = true;
            }

            Header.Serialize(bw);
            bw.Write(payloadWriter.ToBytes());
        }
Пример #2
0
        public void Serialize(LEWriter bw)
        {
            var payloadWriter = new LEWriter();

            Data.Serialize(payloadWriter);
            var payload = payloadWriter.ToBytes();

            PacketSize = (uint)payload.Length;

            bw.Write((uint)Flags);
            if (Flags.HasFlag(StreamerFlags.GotSeqAndPrev))
            {
                bw.Write(SequenceNumber);
                bw.Write(PreviousSequenceNumber);
            }
            bw.Write(PacketType);
            if (PacketType != 0)
            {
                bw.Write(PacketSize);
            }
            bw.Write(payload);
        }