OnixS C++ ICE Binary Order Entry Handler 1.1.1
API Documentation
Loading...
Searching...
No Matches
BenchmarkGatewayListener.h
Go to the documentation of this file.
1/*
2 * Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3 *
4 * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5 * and international copyright treaties.
6 *
7 * Access to and use of the software is governed by the terms of the applicable ONIXS Software
8 * Services Agreement (the Agreement) and Customer end user license agreements granting
9 * a non-assignable, non-transferable and non-exclusive license to use the software
10 * for it's own data processing purposes under the terms defined in the Agreement.
11 *
12 * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
13 * of this source code or associated reference material to any other location for further reproduction
14 * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15 *
16 * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17 * the terms of the Agreement is a violation of copyright law.
18 */
19
20#pragma once
21
23
24class BenchmarkGatewayListener final : public Testing::ClientMessageListener
25{
26public:
27 void onNewOrderRequest(const NewOrderRequest order, Testing::Gateway* gateway) override
28 {
29 const auto sinchEpoch = UtcWatch::now().sinceEpoch();
30 constexpr static auto sid = 123;
31 const OrderExecID id{sid, reportsCounter_, sinchEpoch};
32 report_->clOrdId(order.clOrdId()).execId(id);
33
34 // Send the ExecutionReportNew message to the session.
35 gateway->send(report_, ++reportsCounter_);
36 }
37
38private:
39 MessageHolder<ExecutionReport_New> report_;
40 Int32 reportsCounter_{ 0 };
41};
void onNewOrderRequest(const NewOrderRequest order, Testing::Gateway *gateway) override