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()); }
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); }