OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.2
API documentation
ListenerHolder.cpp
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 */
35 
36 #include "HandlerLogger.h"
37 #include "ListenerHolder.h"
38 
39 
40 using namespace OnixS::Eurex::MarketData;
42 using namespace OnixS::HandlerCore::Common;
43 
44 /*
45  ListenerHolder
46 */
47 
48 ListenerHolder::ListenerHolder(const OnixS::Logging::LogFacility* parent, HandlerLogger* logger)
49  : base("ListenerHolder", parent, OnixS::Logging::LOG_LEVEL_DEBUG), logger_(logger), errorListener_(nullptr),
50  warningListener_(nullptr), handlerStateListener_(nullptr), referenceDataListener_(nullptr), depthListener_(nullptr),
51  cachedDepthIncrementalListener_(nullptr), topOfBookImplied_(nullptr), productStateChangeListener_(nullptr),
52  massInstrumentStateChangeListener_(nullptr), instrumentStateChangeListener_(nullptr), quoteRequestListener_(nullptr),
53  crossRequestListener_(nullptr), complexInstrumentUpdateListener_(nullptr), flexibleInstrumentUpdateListener_(nullptr),
54  orderBookListener_(nullptr), tradeListener_(nullptr), settlementListener_(nullptr), openInterestListener_(nullptr),
55  exchangeTradeListener_(nullptr)
56 {
57 }
58 
59 
60 bool ListenerHolder::hasErrorListener() const ONIXS_NOEXCEPT
61 {
62  return errorListener_ != nullptr;
63 }
64 
65 bool ListenerHolder::hasWarningListener() const ONIXS_NOEXCEPT
66 {
67  return warningListener_ != nullptr;
68 }
69 
70 bool ListenerHolder::hasHandlerStateListener() const ONIXS_NOEXCEPT
71 {
72  return handlerStateListener_ != nullptr;
73 }
74 
75 bool ListenerHolder::hasReferenceDataListener() const ONIXS_NOEXCEPT
76 {
77  return referenceDataListener_ != nullptr;
78 }
79 
80 bool ListenerHolder::hasDepthListener() const ONIXS_NOEXCEPT
81 {
82  return depthListener_ != nullptr;
83 }
84 
86 {
87  return cachedDepthIncrementalListener_ != nullptr;
88 }
89 
90 bool ListenerHolder::hasTopOfBookImplied() const ONIXS_NOEXCEPT
91 {
92  return topOfBookImplied_ != nullptr;
93 }
94 
96 {
97  return productStateChangeListener_ != nullptr;
98 }
99 
101 {
102  return massInstrumentStateChangeListener_ != nullptr;
103 }
104 
106 {
107  return instrumentStateChangeListener_ != nullptr;
108 }
109 
110 bool ListenerHolder::hasQuoteRequestListener() const ONIXS_NOEXCEPT
111 {
112  return quoteRequestListener_ != nullptr;
113 }
114 
115 bool ListenerHolder::hasCrossRequestListener() const ONIXS_NOEXCEPT
116 {
117  return crossRequestListener_ != nullptr;
118 }
119 
121 {
122  return complexInstrumentUpdateListener_ != nullptr;
123 }
124 
126 {
127  return flexibleInstrumentUpdateListener_ != nullptr;
128 }
129 
130 bool ListenerHolder::hasOrderBookListener() const ONIXS_NOEXCEPT
131 {
132  return orderBookListener_ != nullptr;
133 }
134 
135 bool ListenerHolder::hasTradeListener() const ONIXS_NOEXCEPT
136 {
137  return tradeListener_ != nullptr;
138 }
139 
140 bool ListenerHolder::hasSettlementListener() const ONIXS_NOEXCEPT
141 {
142  return settlementListener_ != nullptr;
143 }
144 
145 bool ListenerHolder::hasOpenInterestListener() const ONIXS_NOEXCEPT
146 {
147  return openInterestListener_ != nullptr;
148 }
149 
150 bool ListenerHolder::hasExchangeTradeListener() const ONIXS_NOEXCEPT
151 {
152  return exchangeTradeListener_ != nullptr;
153 }
154 
155 
156 void ListenerHolder::set(ErrorListener* listener) ONIXS_NOEXCEPT
157 {
158  errorListener_ = listener;
159 }
160 
161 void ListenerHolder::set(WarningListener* listener) ONIXS_NOEXCEPT
162 {
163  warningListener_ = listener;
164 }
165 
166 void ListenerHolder::set(HandlerStateListener* listener) ONIXS_NOEXCEPT
167 {
168  handlerStateListener_ = listener;
169 }
170 
171 void ListenerHolder::set(ReferenceDataListener* listener) ONIXS_NOEXCEPT
172 {
173  referenceDataListener_ = listener;
174 }
175 
176 void ListenerHolder::set(DepthListener* listener) ONIXS_NOEXCEPT
177 {
178  depthListener_ = listener;
179 }
180 
182 {
183  cachedDepthIncrementalListener_ = listener;
184 }
185 
186 void ListenerHolder::set(TopOfBookImpliedListener* listener) ONIXS_NOEXCEPT
187 {
188  topOfBookImplied_ = listener;
189 }
190 
191 void ListenerHolder::set(ProductStateChangeListener* listener) ONIXS_NOEXCEPT
192 {
193  productStateChangeListener_ = listener;
194 }
195 
197 {
198  massInstrumentStateChangeListener_ = listener;
199 }
200 
202 {
203  instrumentStateChangeListener_ = listener;
204 }
205 
206 void ListenerHolder::set(QuoteRequestListener* listener) ONIXS_NOEXCEPT
207 {
208  quoteRequestListener_ = listener;
209 }
210 
211 void ListenerHolder::set(CrossRequestListener* listener) ONIXS_NOEXCEPT
212 {
213  crossRequestListener_ = listener;
214 }
215 
217 {
218  complexInstrumentUpdateListener_ = listener;
219 }
220 
222 {
223  flexibleInstrumentUpdateListener_ = listener;
224 }
225 
226 void ListenerHolder::set(OrderBookListener* listener) ONIXS_NOEXCEPT
227 {
228  orderBookListener_ = listener;
229 }
230 
231 void ListenerHolder::set(TradeListener* listener) ONIXS_NOEXCEPT
232 {
233  tradeListener_ = listener;
234 }
235 
236 void ListenerHolder::set(SettlementListener* listener) ONIXS_NOEXCEPT
237 {
238  settlementListener_ = listener;
239 }
240 
241 void ListenerHolder::set(OpenInterestListener* listener) ONIXS_NOEXCEPT
242 {
243  openInterestListener_ = listener;
244 }
245 
246 void ListenerHolder::set(ExchangeTradeListener* listener) ONIXS_NOEXCEPT
247 {
248  exchangeTradeListener_ = listener;
249 }
250 
251 
252 /*
253  User callback's
254 */
255 
256 void ListenerHolder::invokeError(ErrorCode::Enum code, const std::string& description) ONIXS_NOEXCEPT
257 {
258  if (ErrorListener* listener = errorListener_)
259  {
260  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onError(code, description), "onError");
261  }
262 }
263 
264 void ListenerHolder::invokeWarning(const std::string& description) ONIXS_NOEXCEPT
265 {
266  if (WarningListener* listener = warningListener_)
267  {
268  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onWarning(description), "onWarning");
269  }
270 }
271 
273 {
274  if (HandlerStateListener* listener = handlerStateListener_)
275  {
276  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onStateChanged(newState), "onStateChanged");
277  }
278 }
279 
281 {
282  if (ReferenceDataListener* listener = referenceDataListener_)
283  {
284  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onSnapshotCycleStart(), "onSnapshotCycleStart");
285  }
286 }
287 
288 void ListenerHolder::invokeReferenceDataProduct(const ProductSnapshot* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
289 {
290  if (ReferenceDataListener* listener = referenceDataListener_)
291  {
292  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onProduct(*msg, dataSource), "onProduct");
293  }
294 }
295 
296 void ListenerHolder::invokeReferenceDataInstrument(const InstrumentSnapshot* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
297 {
298  if (ReferenceDataListener* listener = referenceDataListener_)
299  {
300  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onInstrument(*msg, dataSource), "onInstrument");
301  }
302 }
303 
305  ONIXS_NOEXCEPT
306 {
307  if (ReferenceDataListener* listener = referenceDataListener_)
308  {
309  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onInstrumentIncremental(*msg, dataSource), "onInstrumentIncremental");
310  }
311 }
312 
313 void
315  ONIXS_NOEXCEPT
316 {
317  if (ReferenceDataListener* listener = referenceDataListener_)
318  {
319  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onVarianceFuturesStatus(*msg, dataSource), "onVarianceFuturesStatus");
320  }
321 }
322 
324  const DataSource& dataSource) ONIXS_NOEXCEPT
325 {
326  if (ReferenceDataListener* listener = referenceDataListener_)
327  {
328  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onTotalReturnFuturesStatus(*msg, dataSource),
329  "onTotalReturnFuturesStatus");
330  }
331 }
332 
333 void
335  const TradeAtReferencePriceStatus* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
336 {
337  if (ReferenceDataListener* listener = referenceDataListener_)
338  {
339  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onTradeAtReferencePriceStatus(*msg, dataSource),
340  "onTradeAtReferencePriceStatus");
341  }
342 }
343 
345 {
346  if (ReferenceDataListener* listener = referenceDataListener_)
347  {
348  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onSnapshotCycleEnd(), "onSnapshotCycleEnd");
349  }
350 }
351 
352 void ListenerHolder::invokeDepthSnapshot(const DepthSnapshot* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
353 {
354  if (DepthListener* listener = depthListener_)
355  {
356  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onDepthSnapshot(*msg, dataSource), "onDepthSnapshot");
357  }
358 }
359 
360 void ListenerHolder::invokeDepthIncremental(const DepthIncremental* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
361 {
362  if (DepthListener* listener = depthListener_)
363  {
364  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onDepthIncremental(*msg, dataSource), "onDepthIncremental");
365  }
366 }
367 
368 void ListenerHolder::invokeDepthReset(MarketSegmentId marketSegmentId) ONIXS_NOEXCEPT
369 {
370  if (DepthListener* listener = depthListener_)
371  {
372  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onDepthReset(marketSegmentId), "onDepthReset");
373  }
374 }
375 
376 void ListenerHolder::invokeDepthOutOfDate(MarketSegmentId marketSegmentId) ONIXS_NOEXCEPT
377 {
378  if (DepthListener* listener = depthListener_)
379  {
380  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onDepthOutOfDate(marketSegmentId), "onDepthOutOfDate");
381  }
382 }
383 
384 void ListenerHolder::invokeCachedDepthIncremental(const DepthIncremental* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
385 {
386  if (CachedDepthIncrementalListener* listener = cachedDepthIncrementalListener_)
387  {
388  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onCachedDepthIncremental(*msg, dataSource),
389  "onCachedDepthIncremental");
390  }
391 }
392 
393 void ListenerHolder::invokeTopOfBookImplied(const TopOfBookImplied* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
394 {
395  if (TopOfBookImpliedListener* listener = topOfBookImplied_)
396  {
397  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onTopOfBookImplied(*msg, dataSource), "onTopOfBookImplied");
398  }
399 }
400 
401 void ListenerHolder::invokeProductStateChange(const ProductStateChange* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
402 {
403  if (ProductStateChangeListener* listener = productStateChangeListener_)
404  {
405  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onProductStateChange(*msg, dataSource), "onProductStateChange");
406  }
407 }
408 
410  const MassInstrumentStateChange* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
411 {
412  if (MassInstrumentStateChangeListener* listener = massInstrumentStateChangeListener_)
413  {
414  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onMassInstrumentStateChange(*msg, dataSource),
415  "onMassInstrumentStateChange");
416  }
417 }
418 
420  const InstrumentStateChange* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
421 {
422  if (InstrumentStateChangeListener* listener = instrumentStateChangeListener_)
423  {
424  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onInstrumentStateChange(*msg, dataSource), "onInstrumentStateChange");
425  }
426 }
427 
428 void ListenerHolder::invokeQuoteRequest(const QuoteRequest* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
429 {
430  if (QuoteRequestListener* listener = quoteRequestListener_)
431  {
432  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onQuoteRequest(*msg, dataSource), "onQuoteRequest");
433  }
434 }
435 
436 void ListenerHolder::invokeCrossRequest(const CrossRequest* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
437 {
438  if (CrossRequestListener* listener = crossRequestListener_)
439  {
440  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onCrossRequest(*msg, dataSource), "onCrossRequest");
441  }
442 }
443 
445  const ComplexInstrumentUpdate* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
446 {
447  if (ComplexInstrumentUpdateListener* listener = complexInstrumentUpdateListener_)
448  {
449  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onComplexInstrumentUpdate(*msg, dataSource),
450  "onComplexInstrumentUpdate");
451  }
452 }
453 
455  const FlexibleInstrumentUpdate* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
456 {
457  if (FlexibleInstrumentUpdateListener* listener = flexibleInstrumentUpdateListener_)
458  {
459  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onFlexibleInstrumentUpdate(*msg, dataSource),
460  "onFlexibleInstrumentUpdate");
461  }
462 }
463 
464 void ListenerHolder::invokeOrderBookUpdated(const OrderBook& book) ONIXS_NOEXCEPT
465 {
466  if (OrderBookListener* listener = orderBookListener_)
467  {
468  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onOrderBookUpdated(book), "onOrderBookUpdated");
469  }
470 }
471 
472 void ListenerHolder::invokeOrderBookOutOfDate(const OrderBook& book) ONIXS_NOEXCEPT
473 {
474  if (OrderBookListener* listener = orderBookListener_)
475  {
476  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onOrderBookOutOfDate(book), "onOrderBookOutOfDate");
477  }
478 }
479 
480 void ListenerHolder::invokeSnapshotTrade(const SnapshotTrade& trade) ONIXS_NOEXCEPT
481 {
482  if (TradeListener* listener = tradeListener_)
483  {
484  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onSnapshotTrade(trade), "onSnapshotTrade");
485  }
486 }
487 
489 {
490  if (TradeListener* listener = tradeListener_)
491  {
492  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onIncrementalTrade(trade), "onIncrementalTrade");
493  }
494 }
495 
496 void ListenerHolder::invokeOpenInterest(const OpenInterest* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
497 {
498  if (OpenInterestListener* listener = openInterestListener_)
499  {
500  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onOpenInterest(*msg, dataSource), "onOpenInterest");
501  }
502 }
503 
504 void ListenerHolder::invokeOpenInterestReplayCycleStart(UInt32 mdCount, const DataSource& dataSource) ONIXS_NOEXCEPT
505 {
506  if (OpenInterestListener* listener = openInterestListener_)
507  {
508  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onOpenInterestReplayCycleStart(mdCount, dataSource),
509  "onOpenInterestReplayCycleStart");
510  }
511 }
512 
513 void ListenerHolder::invokeOpenInterestReplayCycleEnd(const DataSource& dataSource) ONIXS_NOEXCEPT
514 {
515  if (OpenInterestListener* listener = openInterestListener_)
516  {
517  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onOpenInterestReplayCycleEnd(dataSource),
518  "onOpenInterestReplayCycleEnd");
519  }
520 }
521 
522 
523 void ListenerHolder::invokeSettlement(const Settlement* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
524 {
525  if (SettlementListener* listener = settlementListener_)
526  {
527  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onSettlement(*msg, dataSource), "onSettlement")
528  }
529 }
530 
531 void ListenerHolder::invokeSettlementReplayCycleStart(UInt32 mdCount, const DataSource& dataSource) ONIXS_NOEXCEPT
532 {
533  if (SettlementListener* listener = settlementListener_)
534  {
535  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onSettlementReplayCycleStart(mdCount, dataSource),
536  "onSettlementReplayCycleStart");
537  }
538 }
539 
540 void ListenerHolder::invokeSettlementReplayCycleEnd(const DataSource& dataSource) ONIXS_NOEXCEPT
541 {
542  if (SettlementListener* listener = settlementListener_)
543  {
544  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onSettlementReplayCycleEnd(dataSource), "onSettlementReplayCycleEnd");
545  }
546 }
547 
548 void ListenerHolder::invokeExchangeTrade(const ExchangeTrade* msg, const DataSource& dataSource) ONIXS_NOEXCEPT
549 {
550  if (ExchangeTradeListener* listener = exchangeTradeListener_)
551  {
552  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onExchangeTrade(*msg, dataSource), "onExchangeTrade")
553  }
554 }
555 
556 void ListenerHolder::invokeExchangeTradeReplayCycleStart(UInt32 mdCount, const DataSource& dataSource) ONIXS_NOEXCEPT
557 {
558  if (ExchangeTradeListener* listener = exchangeTradeListener_)
559  {
560  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onExchangeTradeReplayCycleStart(mdCount, dataSource),
561  "onExchangeTradeReplayCycleStart");
562  }
563 }
564 
565 void ListenerHolder::invokeExchangeTradeReplayCycleEnd(const DataSource& dataSource) ONIXS_NOEXCEPT
566 {
567  if (ExchangeTradeListener* listener = exchangeTradeListener_)
568  {
569  ONIXS_EXCEPTION_TRACED_CALLBACK(listener->onExchangeTradeReplayCycleEnd(dataSource),
570  "onExchangeTradeReplayCycleEnd");
571  }
572 }
void invokeFlexibleInstrumentUpdate(const FlexibleInstrumentUpdate *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeTopOfBookImplied(const TopOfBookImplied *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeExchangeTradeReplayCycleStart(UInt32 mdCount, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeIncrementalTrade(const IncrementalTrade &trade) ONIXS_NOEXCEPT
void invokeComplexInstrumentUpdate(const ComplexInstrumentUpdate *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeOpenInterest(const OpenInterest *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeReferenceDataTradeAtReferencePriceStatus(const TradeAtReferencePriceStatus *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeSettlementReplayCycleStart(UInt32 mdCount, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeMassInstrumentStateChange(const MassInstrumentStateChange *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeSettlement(const Settlement *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeOpenInterestReplayCycleEnd(const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeDepthReset(MarketSegmentId marketSegmentId) ONIXS_NOEXCEPT
void invokeCachedDepthIncremental(const DepthIncremental *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeError(ErrorCode::Enum code, const std::string &description) ONIXS_NOEXCEPT
void invokeInstrumentStateChange(const InstrumentStateChange *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeOrderBookUpdated(const OrderBook &book) ONIXS_NOEXCEPT
void invokeSettlementReplayCycleEnd(const DataSource &dataSource) ONIXS_NOEXCEPT
unsigned int UInt32
Definition: Numeric.h:41
Definition: Defines.h:30
void invokeSnapshotTrade(const SnapshotTrade &trade) ONIXS_NOEXCEPT
void invokeStateChanged(HandlerState::Enum newState) ONIXS_NOEXCEPT
void invokeQuoteRequest(const QuoteRequest *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeDepthOutOfDate(MarketSegmentId marketSegmentId) ONIXS_NOEXCEPT
void invokeOrderBookOutOfDate(const OrderBook &book) ONIXS_NOEXCEPT
void invokeOpenInterestReplayCycleStart(UInt32 mdCount, const DataSource &dataSource) ONIXS_NOEXCEPT
void set(ErrorListener *listener) ONIXS_NOEXCEPT
void invokeDepthSnapshot(const DepthSnapshot *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
Enum
Known (selected) error codes.
Definition: ErrorListener.h:36
void invokeReferenceDataTotalReturnFuturesStatus(const TotalReturnFuturesStatus *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
Enum
Defines the state that the handler is in.
void invokeReferenceDataInstrument(const InstrumentSnapshot *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
UInt32 MarketSegmentId
Alias for Market Segment ID type.
Definition: Defines.h:40
#define ONIXS_EXCEPTION_TRACED_CALLBACK(callback, contextName)
void invokeProductStateChange(const ProductStateChange *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeWarning(const std::string &description) ONIXS_NOEXCEPT
void invokeExchangeTradeReplayCycleEnd(const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeReferenceDataProduct(const ProductSnapshot *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
ListenerHolder(const Logging::LogFacility *parent, HandlerCore::Common::HandlerLogger *logger=nullptr)
void invokeReferenceDataInstrumentUpdate(const InstrumentIncremental *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeCrossRequest(const CrossRequest *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeExchangeTrade(const ExchangeTrade *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeDepthIncremental(const DepthIncremental *msg, const DataSource &dataSource) ONIXS_NOEXCEPT
void invokeReferenceDataVarianceFuturesStatus(const VarianceFuturesStatus *msg, const DataSource &dataSource) ONIXS_NOEXCEPT