MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / SendAndReceive

Function SendAndReceive

tests/test_send_receive.cpp:38–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

36};
37
38bool SendAndReceive(size_t index1, size_t index2)
39{
40 MySender sender;
41
42 // Create and send a new order
43 proto::OrderMessage order({ proto::Order({ 1, "EURUSD", proto::OrderSide::buy, proto::OrderType::market, 1.23456, 1000.0 }) });
44 sender.send(order);
45
46 // Create and send a new balance wallet
47 proto::BalanceMessage balance({ proto::Balance({ "USD", 1000.0 }) });
48 sender.send(balance);
49
50 // Create and send a new account with some orders
51 proto::AccountMessage account({ proto::Account({ 1, "Test", proto::State::good, { "USD", 1000.0 }, std::make_optional<proto::Balance>({ "EUR", 100.0 }), {} }) });
52 account.body.orders.emplace_back(1, "EURUSD", proto::OrderSide::buy, proto::OrderType::market, 1.23456, 1000.0);
53 account.body.orders.emplace_back(2, "EURUSD", proto::OrderSide::sell, proto::OrderType::limit, 1.0, 100.0);
54 account.body.orders.emplace_back(3, "EURUSD", proto::OrderSide::buy, proto::OrderType::stop, 1.5, 10.0);
55 sender.send(account);
56
57 MyReceiver receiver;
58
59 // Receive data from the sender
60 index1 %= sender.buffer().size();
61 index2 %= sender.buffer().size();
62 index2 = std::max(index1, index2);
63 receiver.receive(sender.buffer().data(), index1);
64 receiver.receive(sender.buffer().data() + index1, index2 - index1);
65 receiver.receive(sender.buffer().data() + index2, sender.buffer().size() - index2);
66 return receiver.check();
67}
68
69TEST_CASE("Send & Receive", "[FBE]")
70{

Callers 1

Calls 10

emplace_backMethod · 0.80
OrderClass · 0.50
BalanceClass · 0.50
AccountClass · 0.50
sendMethod · 0.45
sizeMethod · 0.45
bufferMethod · 0.45
receiveMethod · 0.45
dataMethod · 0.45
checkMethod · 0.45

Tested by

no test coverage detected