OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.2
API documentation
MassInstrumentStateChange.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 
27 
28 namespace OnixS
29 {
30  namespace Eurex
31  {
32  namespace MarketData
33  {
34  ///
35  class ONIXS_EUREX_EMDI_API SecMassStat : GroupInstance
36  {
37  public:
38 
39  /// Instrument identifier.
41  {
42  return getInt64 (Tags::SecurityID);
43  }
44 
45  /// Security Status.
47  {
48  return getIntEnumFieldValue<SecurityStatus> (*this, Tags::SecurityStatus);
49  }
50 
51  /// Defines the security trading status.
53  {
54  return getIntEnumFieldValue<SecurityTradingStatus> (*this, Tags::SecurityTradingStatus);
55  }
56 
57  /// Indicator for stressed market conditions.
59  {
60  return getIntEnumFieldValue<MarketCondition>(*this, Tags::MarketCondition);
61  }
62 
63  /// Identifies an event related to a securityTradingStatus()
65  {
66  return getIntEnumFieldValue<SecurityTradingEvent> (*this, Tags::SecurityTradingEvent);
67  }
68 
69  /// Identifies the sold out status (applicable for continuous auction trading model only).
71  {
72  return getIntEnumFieldValue<SoldOutIndicator>(*this, Tags::SoldOutIndicator);
73  }
74 
75  /// Defines the TES trading session status.
77  {
78  return getIntEnumFieldValue<SecurityStatus> (*this, Tags::TESSecurityStatus);
79  }
80 
81  private:
82  friend class TypedGroup<SecMassStat>;
83 
84  SecMassStat (const GroupInstance& groupInstance)
85  : GroupInstance (groupInstance)
86  {
87  }
88  };
89 
90  class SecMassStats : public TypedGroup<SecMassStat>
91  {
92  private:
93  explicit
94  SecMassStats (const Group& group)
95  : TypedGroup<SecMassStat> (group)
96  {
97  }
98 
100  };
101 
102  /// Mass instrument state change
103  class ONIXS_EUREX_EMDI_API MassInstrumentStateChange : public Message
104  {
105  public:
106  /// Product identifier.
108  {
109  return getUInt32 (Tags::MarketSegmentID);
110  }
111 
112  /// Instrument type of affected instruments.
114  {
115  return getNonZeroIntEnumFieldValue<InstrumentType> (*this, Tags::InstrumentScopeProductComplex);
116  }
117 
118  /// Defines the security mass trading status.
120  {
121  return getIntEnumFieldValue<SecurityTradingStatus> (*this, Tags::SecurityMassTradingStatus);
122  }
123 
124  /// Identifies an event related to a securityMassTradingStatus().
126  {
127  return getIntEnumFieldValue<SecurityTradingEvent> (*this, Tags::SecurityMassTradingEvent);
128  }
129 
130  /// Indicates if product is in the state Fast Market.
131  bool fastMarketIndicator() const
132  {
133  return getUInt32 (Tags::FastMarketIndicator) == 1;
134  }
135 
136  /// Time when request was processed by the matcher (nanoseconds).
137  UInt64 transactTime() const
138  {
139  return getUInt64 (Tags::TransactTime);
140  }
141 
142  /// checks existence of optional group
143  /// deprecated - please use Group::size() instead
144  bool hasSecMassStats() const
145  {
146  return (secMassStats().size() != 0);
147  }
148 
149  /// SecMassStats.
151  {
152  return SecMassStats ( getOptionalGroup (Tags::NoRelatedSym) );
153  }
154 
155  /// Indicator for stressed market conditions.
157  {
158  return getIntEnumFieldValue<MarketCondition>(*this, Tags::MassMarketCondition);
159  }
160 
161  /// Indicator for stressed market conditions.
163  {
164  return getIntEnumFieldValue<MarketCondition>(*this, Tags::MarketCondition);
165  }
166 
167  private:
169 
170  MassInstrumentStateChange (const void* impl)
171  : Message (impl)
172  {
173  }
174  };
175  }
176  }
177 }
const Tag SecurityMassTradingEvent
Definition: Tags.h:206
SecurityTradingEvent::Enum securityTradingEvent() const
Identifies an event related to a securityTradingStatus()
UInt64 transactTime() const
Time when request was processed by the matcher (nanoseconds).
SecurityTradingStatus::Enum securityTradingStatus() const
Defines the security trading status.
MarketCondition::Enum marketCondition() const
Indicator for stressed market conditions.
const Tag MassMarketCondition
Definition: Tags.h:253
const Tag SecurityTradingStatus
Definition: Tags.h:63
SecurityTradingStatus::Enum securityMassTradingStatus() const
Defines the security mass trading status.
bool fastMarketIndicator() const
Indicates if product is in the state Fast Market.
const Tag InstrumentScopeProductComplex
Definition: Tags.h:120
Definition: Defines.h:30
MarketCondition::Enum marketCondition() const
Indicator for stressed market conditions.
Int64 SecurityId
Alias for Security Id type.
Definition: Defines.h:51
MarketSegmentId marketSegmentId() const
Product identifier.
SoldOutIndicator::Enum soldOutIndicator() const
Identifies the sold out status (applicable for continuous auction trading model only).
SecurityId securityId() const
Instrument identifier.
const Tag SecurityMassTradingStatus
Definition: Tags.h:121
const Tag SecurityTradingEvent
Definition: Tags.h:207
SecurityTradingEvent::Enum securityMassTradingEvent() const
Identifies an event related to a securityMassTradingStatus().
SecurityStatus::Enum tesTradSesStatus() const
Defines the TES trading session status.
UInt32 MarketSegmentId
Alias for Market Segment ID type.
Definition: Defines.h:40
SecurityStatus::Enum securityStatus() const
Security Status.
const Tag FastMarketIndicator
Definition: Tags.h:159
MarketCondition::Enum massMarketCondition() const
Indicator for stressed market conditions.
InstrumentType::Enum instrumentScopeProductComplex() const
Instrument type of affected instruments.