public override void Deserialize(PlaceOrderMessage message, UnsafeBinaryReader binaryReader) { var version = binaryReader.ReadByte(); if (version != _version) { throw new InvalidOperationException($"version mismatch; expected:{_version} received:{version}"); } message.Id = binaryReader.ReadInt64(); message.InstrumentId = binaryReader.ReadInt32(); message.Price = binaryReader.ReadDouble(); message.Quantity = binaryReader.ReadDouble(); message.Side = (OrderSide)binaryReader.ReadByte(); message.val0 = binaryReader.ReadInt64(); message.val1 = binaryReader.ReadInt64(); message.val2 = binaryReader.ReadInt64(); message.val3 = binaryReader.ReadInt64(); message.val4 = binaryReader.ReadInt64(); message.val5 = binaryReader.ReadInt64(); message.val6 = binaryReader.ReadInt64(); message.val7 = binaryReader.ReadInt64(); message.val8 = binaryReader.ReadInt64(); message.val9 = binaryReader.ReadInt64(); message.val11 = binaryReader.ReadInt64(); message.val12 = binaryReader.ReadInt64(); message.val13 = binaryReader.ReadInt64(); message.val14 = binaryReader.ReadInt64(); message.val15 = binaryReader.ReadInt64(); }
private void CreateContext(Encoding encoding, int bufferSegmentSize, int bufferSegmentCount = 512) { _segmentProvider = new BufferSegmentProvider(bufferSegmentCount, bufferSegmentSize); _reader = new UnsafeBinaryReader(encoding); _reader.SetBuffers(_segmentProvider.GetBufferSegments()); _writer = _segmentProvider.GetBinaryWriter(encoding); }
public override void Deserialize(OrderAckMessage message, UnsafeBinaryReader binaryReader) { var version = binaryReader.ReadByte(); if (version != _version) { throw new InvalidOperationException($"version mismatch; expected:{_version} received:{version}"); } message.Id = binaryReader.ReadInt64(); }
/// <summary> /// Take a raw message buffer and extract the endpoint name and serialized proto buffer. /// </summary> /// <param name="messageData"></param> public Message(byte[] messageData) { unsafe { var segmentReader = new UnsafeBinaryReader(Encoding.UTF8); fixed(byte *mData = messageData) { var segment = new BufferSegment(mData); segmentReader.SetBuffer(segment.Data, messageData.Length); var length = segmentReader.ReadVariableLengthQuantity(); fixed(byte *headerData = segmentReader.ReadBytes(length)) { Header = GetHeader(headerData, length); } Payload = segmentReader.ReadBytes(segmentReader.AvailableData()); } } }
public abstract void Deserialize(T message, UnsafeBinaryReader binaryReader);
void IBinaryMessageSerializer.Deserialize(object message, UnsafeBinaryReader binaryReader) { Deserialize((T)message, binaryReader); }
public override void Deserialize(Pong message, UnsafeBinaryReader binaryReader) { message.PingId = binaryReader.ReadInt32(); }
public ReleasableMessage DeserializeWithLengthPrefix(List <BufferSegment> framedMessage, UnsafeBinaryReader binaryReader) { binaryReader.SetBuffers(framedMessage); var messageTypeId = new MessageTypeId(binaryReader.ReadUInt32()); var serializationEngine = _messageEnginesByTypeId[messageTypeId]; var message = serializationEngine.Allocator.Allocate(); serializationEngine.Serializer.Deserialize(message, binaryReader); return(new ReleasableMessage(messageTypeId, message, serializationEngine.Releaser)); }
public ReceivingContext(Encoding encoding) { BinaryReader = new UnsafeBinaryReader(encoding); }