OnixS C++ CME iLink 3 Binary Order Entry Handler  1.17.0
API Documentation
TagBasedSessionListener.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 
22 #include <OnixS/CME/iLink3/ABI.h>
23 
25 
28 
29 namespace OnixS {
30 namespace CME {
31 namespace iLink3 {
32 
33 /// Tag-based Session Listener.
35 : public SessionListener
36 {
37 public:
38  /// Invoked when a message is received.
39  ///
40  /// @note When the [Not Applied message](https://www.cmegroup.com/confluence/display/EPICSANDBOX/Not+Applied) is received,
41  /// the action can be set using the TagBasedSessionListener::setOnNotAppliedAction method; otherwise, the default action is performed.
42  virtual void onMessage(const Messaging::TagBased::Message&, Session*) = 0;
43 
44 protected:
46  : onNotAppliedAction_(NotAppliedAction::Default)
47  {
48  }
49 
50  /// Sets the action to be taken when the [NotApplied message]
51  /// (https://www.cmegroup.com/confluence/display/EPICSANDBOX/Not+Applied) is received from the exchange.
53  {
54  onNotAppliedAction_ = value;
55  }
56 
57 private:
58  NotAppliedAction::Enum onNotAppliedAction_;
59 
60  NotAppliedAction::Enum onNotApplied(
62  {
63  onMessage(Messaging::TagBased::NotApplied513(msg), sn);
64 
65  return onNotAppliedAction_;
66  }
67 
68  void onNegotiationResponse(
70  {
72  }
73 
74  void onNegotiationReject(
76  {
78  }
79 
80  void onEstablishmentAck(
82  {
83  onMessage(Messaging::TagBased::EstablishmentAck504(msg), sn);
84  }
85 
86  void onEstablishmentReject(
88  {
90  }
91 
92  void onSequence(
94  {
95  onMessage(Messaging::TagBased::Sequence506(msg), sn);
96  }
97 
98  void onTerminate(
100  {
101  onMessage(Messaging::TagBased::Terminate507(msg), sn);
102  }
103 
104  void onRetransmission(
106  {
107  onMessage(Messaging::TagBased::Retransmission509(msg), sn);
108  }
109 
110  void onRetransmitReject(
112  {
113  onMessage(Messaging::TagBased::RetransmitReject510(msg), sn);
114  }
115 
116  void onPartyDetailsDefinitionRequestAck(
118  {
120  }
121 
122  void onBusinessReject(
124  {
125  onMessage(Messaging::TagBased::BusinessReject521(msg), sn);
126  }
127 
128  void onExecutionReportNew(
130  {
131  onMessage(Messaging::TagBased::ExecutionReportNew522(msg), sn);
132  }
133 
134  void onExecutionReportReject(
136  {
138  }
139 
140  void onExecutionReportElimination(
142  {
144  }
145 
146  void onExecutionReportTradeOutright(
148  {
150  }
151 
152  void onExecutionReportTradeSpread(
154  {
156  }
157 
158  void onExecutionReportTradeSpreadLeg(
160  {
162  }
163 
164  void onExecutionReportModify(
166  {
168  }
169 
170  void onExecutionReportStatus(
172  {
174  }
175 
176  void onExecutionReportCancel(
178  {
180  }
181 
182  void onOrderCancelReject(
184  {
185  onMessage(Messaging::TagBased::OrderCancelReject535(msg), sn);
186  }
187 
188  void onOrderCancelReplaceReject(
190  {
192  }
193 
194  void onPartyDetailsListReport(
196  {
198  }
199 
200  void onMassQuoteAck(
202  {
203  onMessage(Messaging::TagBased::MassQuoteAck545(msg), sn);
204  }
205 
206  void onRequestForQuoteAck(
208  {
209  onMessage(Messaging::TagBased::RequestForQuoteAck546(msg), sn);
210  }
211 
212  void onExecutionReportTradeAddendumOutright(
214  {
216  }
217 
218  void onExecutionReportTradeAddendumSpread(
220  {
222  }
223 
224  void onExecutionReportTradeAddendumSpreadLeg(
226  {
228  }
229 
230  void onSecurityDefinitionResponse(
232  {
234  }
235 
236  void onOrderMassActionReport(
238  {
240  }
241 
242  void onQuoteCancelAck(
244  {
245  onMessage(Messaging::TagBased::QuoteCancelAck563(msg), sn);
246  }
247 
248  void onExecutionReportPendingCancel(
250  {
252  }
253 
254  void onExecutionReportPendingReplace(
256  {
258  }
259 
260 };
261 
262 }}}
An iLink 3 Session.
Definition: Session.h:46
Action to be taken when the NotApplied message is received from the exchange.
Enum
Action to be taken when the NotApplied message is received from the exchange.
#define ONIXS_ILINK3_EXPORTED_CLASS
Definition: ABI.h:44
void setOnNotAppliedAction(NotAppliedAction::Enum value) noexcept
Sets the action to be taken when the NotApplied message is received from the exchange.
Definition: Defines.h:40
#define ONIXS_ILINK3_FINAL
Definition: Compiler.h:173
Implements a tag-based interface over an SBE-encoded message.
Definition: Message.h:662
#define ONIXS_ILINK3_NOTHROW
Definition: Compiler.h:168