OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers  16.1.0
API documentation
InstrumentSummary.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 
26 
27 namespace OnixS
28 {
29  namespace Eurex
30  {
31  namespace MarketData
32  {
33  namespace EOBI
34  {
35  class ONIXS_EUREX_EMDI_API InstrumentSummaryEntry : public DataContainer
36  {
37  public:
38  /// Price.
39  bool mdEntryPx (Decimal& price) const;
40 
41  /// Quantity.
42  QuantityType mdEntrySize() const;
43 
44  ///
45  EOBI::MDOriginType::Enum mdOriginType() const;
46 
47  /// Type of market data entry.
48  EOBI::MDEntryType::Enum mdEntryType() const;
49 
50  /// Trade Condition
51  EOBI::TradeCondition::Enum tradeCondition() const;
52 
53  ///
54  EOBI::TrdType::Enum trdType() const;
55 
56  ///
57  EOBI::MultiLegReportingType::Enum multiLegReportingType() const;
58 
59  ///
60  EOBI::MultiLegPriceModel::Enum multiLegPriceModel() const;
61 
62  ///
63  EOBI::QuantityType nonDisclosedTradeVolume() const;
64 
65  /// Appends text presentation.
66  void toString (std::string&) const;
67 
68  private:
70 
71  InstrumentSummaryEntry (const void* data);
72  };
73 
74  class ONIXS_EUREX_EMDI_API InstrumentSummaryEntries : public DataContainer
75  {
76  public:
77  /// Number of entries
78  size_t size() const;
79 
80  /// Entry accessor
81  InstrumentSummaryEntry operator[] (size_t idx) const;
82 
83  /// Appends text presentation.
84  void toString (std::string&) const;
85 
86  private:
87  friend class InstrumentSummary;
88 
89  explicit
90  InstrumentSummaryEntries (const void* data);
91  };
92 
93  class ONIXS_EUREX_EMDI_API InstrumentSummary : public MessageBase
94  {
95  public:
96  /// Message type
97  std::string msgType() const;
98 
99  /// Market data type
100  EOBI::MarketDataType::Enum marketDataType() const;
101 
102  /// Marketplace assigned identifier.
103  EOBI::SecurityIDSource::Enum securityIDSource() const;
104 
105  /// Unique instrument identifier.
106  UInt64 securityID() const;
107 
108  /// Last update time of the corresponding order book.
109  UInt64 lastUpdateTime() const;
110 
111  /// Last matching execution timestamp.
112  UInt64 trdRegTSExecutionTime() const;
113 
114  /// Corresponding number of orders for this instrument.
115  UInt16 totNoOrders() const;
116 
117  /// Instrument status.
118  EOBI::SecurityStatus::Enum securityStatus() const;
119 
120  /// Instrument state status.
121  EOBI::SecurityTradingStatus::Enum securityTradingStatus() const;
122 
123  /// Indicator for stressed market conditions.
124  EOBI::MarketCondition::Enum marketCondition() const;
125 
126  /// Fast market indicator
127  EOBI::FastMarketIndicator::Enum fastMarketIndicator() const;
128 
129  ///
130  EOBI::SecurityTradingEvent::Enum securityTradingEvent() const;
131 
132  ///
133  EOBI::SoldOutIndicator::Enum soldOutIndicator() const;
134 
135  /// Upper boundary price.
136  bool highPx(Decimal& price) const;
137 
138  /// Lower boundary price.
139  bool lowPx(Decimal& price) const;
140 
141  ///
142  EOBI::ProductComplex::Enum productComplex() const;
143 
144  /// Number of entries in Market Data message for MDEntryGrp.
145  UInt8 noMDEntries() const;
146 
147  ///
148  EOBI::TESSecurityStatus::Enum tesSecurityStatus() const;
149 
150  /// Variable size array, record counter: NoMDEntries
151  InstrumentSummaryEntries mdInstrumentEntryGrp() const;
152 
153  /// Appends text presentation.
154  void toString (std::string&) const ONIXS_EUREX_EMDI_OVERRIDE;
155 
156  private:
157  friend class Implementation::MessageFactory;
158 
159  InstrumentSummary (const void* data, const DataSource& dataSource) : MessageBase (data, dataSource) {}
160  };
161  }
162  }
163  }
164 }
unsigned char UInt8
Definition: Numeric.h:35
#define ONIXS_EUREX_EMDI_OVERRIDE
Definition: Compiler.h:126
Definition: Defines.h:30
Decimal type for better precision.
Definition: Numeric.h:63
unsigned short UInt16
Definition: Numeric.h:38