public AResponse SendRequest(ARequest request) { byte[] payload = null; using (MemoryStream stream = new MemoryStream()) { using (BinaryWriter writer = new BinaryWriter(stream)) { request.Write(writer); payload = stream.ToArray(); } } connection.SendMessage(new Message(MessageType.MessagePayload, payload)); Message response_message = message_queue.Take(); using (MemoryStream stream = new MemoryStream(response_message.Payload)) { using (BinaryReader reader = new BinaryReader(stream)) { return(AResponse.Read(reader)); } } }
public void Handle(Message message) { BinaryReader reader = new BinaryReader(new MemoryStream(message.Payload)); handler.Enqueue(this, ARequest.Read(reader)); }
public void Enqueue(ConnectionTradingOnServer source, ARequest request) { RequestQueue.Enqueue(new Tuple <ConnectionTradingOnServer, ARequest>(source, request)); }