private void Test(List <CtpObject> data) { var wr = new CtpObjectWriter(); for (var x = 0; x < data.Count; x++) { var o = data[x]; wr.Write(o); } var rd = new CtpObjectReader(wr.ToArray()); for (var x = 0; x < data.Count; x++) { var o = data[x]; var oo = rd.Read(); if (!o.Equals(oo)) { throw new Exception($"Not Equal {o} {oo} on record {x}"); } } }
internal static bool TryReadPacket(byte[] data, int position, int length, int maximumPacketSize, out PacketContents payloadType, out int payloadFlags, out byte[] payloadBuffer, out int consumedLength) { if (length > maximumPacketSize) throw new Exception("Command size is too large"); var stream = new CtpObjectReader(data, position, length); CtpObject pType; CtpObject pFlags; CtpObject pData; if (stream.TryRead(out pType) && stream.TryRead(out pFlags) && stream.TryRead(out pData)) { payloadType = (PacketContents)(byte)pType; payloadFlags = (int)pFlags; payloadBuffer = (byte[])pData; consumedLength = stream.Position; return true; } payloadType = default(PacketContents); payloadFlags = 0; payloadBuffer = null; consumedLength = 0; return false; }
public MetadataRowDecoder(CommandBeginMetadataResponse metadataResponse) { m_response = metadataResponse; m_stream = new CtpObjectReader(); }
public NormalDecoder() { m_stream = new CtpObjectReader(); }