private static bool SendAndReceiveFinal(long index1, long index2) { var sender = new MyFinalSender(); // Create and send a new order var order = new protoex.Order(1, "EURUSD", protoex.OrderSide.buy, protoex.OrderType.market, 1.23456, 1000.0, 0.0, 0.0); sender.Send(new protoex.OrderMessage(order)); // Create and send a new balance wallet var balance = new protoex.Balance(new proto.Balance("USD", 1000.0), 100.0); sender.Send(new protoex.BalanceMessage(balance)); // Create and send a new account with some orders var account = protoex.Account.Default; account.id = 1; account.name = "Test"; account.state = protoex.StateEx.good; account.wallet.parent.currency = "USD"; account.wallet.parent.amount = 1000.0; account.asset = new protoex.Balance(new proto.Balance("EUR", 100.0), 100.0); account.orders.Add(new protoex.Order(1, "EURUSD", protoex.OrderSide.buy, protoex.OrderType.market, 1.23456, 1000.0, 0.0, 0.0)); account.orders.Add(new protoex.Order(2, "EURUSD", protoex.OrderSide.sell, protoex.OrderType.limit, 1.0, 100.0, 0.0, 0.0)); account.orders.Add(new protoex.Order(3, "EURUSD", protoex.OrderSide.buy, protoex.OrderType.stop, 1.5, 10.0, 0.0, 0.0)); sender.Send(new protoex.AccountMessage(account)); var receiver = new MyFinalReceiver(); // Receive data from the sender index1 %= sender.Buffer.Size; index2 %= sender.Buffer.Size; index2 = Math.Max(index1, index2); receiver.Receive(sender.Buffer.Data, 0, index1); receiver.Receive(sender.Buffer.Data, index1, index2 - index1); receiver.Receive(sender.Buffer.Data, index2, sender.Buffer.Size - index2); return(receiver.Check()); }
protected override void OnReceive(protoex.Balance value) { _balance = true; }