OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers  17.0.1
API documentation
FlexibleInstrumentUpdate.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 
34  /// Mass instrument state change
35  class ONIXS_EUREX_EMDI_API FlexibleInstrumentUpdate : public Message
36  {
37  public:
38 
39  /// Security Update Action.
41  {
42  StringRef val;
43  return get (Tags::SecurityUpdateAction).toStringRef (val) ? val : StringRef();
44  }
45 
46  /// Instrument identifier.
48  {
49  return getInt64 (Tags::SecurityID);
50  }
51 
52  /// Security description
54  {
55  StringRef val;
56  return get (Tags::SecurityDesc).toStringRef (val) ? val : StringRef();
57  }
58 
59  /// Type of security.
61  {
62  return getIntEnumFieldValue<SecurityType> (*this, Tags::SecurityType);
63  }
64 
65  /// Type of instrument
67  {
68  return getNonZeroIntEnumFieldValue<InstrumentType> (*this, Tags::ProductComplex);
69  }
70 
71  /// Actual expiration day of the instrument (YYYYMMDD).
73  {
75  }
76 
77  /// Date used to identify the instrument (YYYYMMDD).
79  {
81  }
82 
83  /// Date used to identify the instrument (YYYYMMDD). Same as user defined field ContractDate(30866).
85  {
87  }
88 
89  /// Strike Price
90  bool strikePrice (Decimal& price) const
91  {
92  return get (Tags::StrikePrice).toNumber (price);
93  }
94 
95  /// Put Or Call
97  {
98  return getIntEnumFieldValue<PutOrCall> (*this, Tags::PutOrCall);
99  }
100 
101  /// Version of an option.
103  {
104  return getInt32 (Tags::OptAttribute);
105  }
106 
107  /// Style family of an option.
109  {
110  return getIntEnumFieldValue<ExerciseStyle> (*this, Tags::ExerciseStyle);
111  }
112 
113  ///Settlement type.
115  {
116  return getIntEnumFieldValue<SettlMethod> (*this, Tags::SettlMethod);
117  }
118 
119  /// Product identifier.
121  {
122  return getGroup (Tags::NoMarketSegments).at (0).getUInt32 (Tags::MarketSegmentID);
123  }
124 
125  /// Creation time of flexible instruments.
126  bool transactTime (UInt64& time) const
127  {
128  return get (Tags::TransactTime).toNumber (time);
129  }
130 
131  ///
132  UInt64 transactTime() const
133  {
134  return getInt32 (Tags::TransactTime);
135  }
136 
137  private:
138  friend class FlexibleInstrumentUpdateWrapper;
139 
140  FlexibleInstrumentUpdate (const void* impl)
141  : Message (impl)
142  {
143  }
144  };
145  }
146  }
147 }
InstrumentType::Enum productComplex() const
Type of instrument.
Timestamp securityReferenceDataSupplement() const
Date used to identify the instrument (YYYYMMDD). Same as user defined field ContractDate(30866).
bool strikePrice(Decimal &price) const
Strike Price.
ExerciseStyle::Enum exerciseStyle() const
Style family of an option.
const Tag SecurityUpdateAction
Definition: Tags.h:90
SecurityType::Enum securityType() const
Type of security.
StringRef securityUpdateAction() const
Security Update Action.
SecurityId securityId() const
Instrument identifier.
unsigned int UInt32
Definition: Numeric.h:41
Definition: Defines.h:30
Decimal type for better precision.
Definition: Numeric.h:63
Indicates timestamp in "YYYYMMDD" format.
Definition: Timestamp.h:70
Int64 SecurityId
Alias for Security Id type.
Definition: Defines.h:51
Represents timestamp without time-zone information.
Definition: Timestamp.h:87
Timestamp maturityDate() const
Actual expiration day of the instrument (YYYYMMDD).
MarketSegmentId marketSegmentId() const
Product identifier.
Timestamp contractDate() const
Date used to identify the instrument (YYYYMMDD).
UInt32 MarketSegmentId
Alias for Market Segment ID type.
Definition: Defines.h:40
SettlMethod::Enum settlMethod() const
Settlement type.
bool transactTime(UInt64 &time) const
Creation time of flexible instruments.
static Timestamp parse(const std::string &, TimestampFormat::Enum=TimestampFormat::YYYYMMDDHHMMSSNsec)
StringRef securityDesc() const
Security description.
const Tag SecurityReferenceDataSupplement
Definition: Tags.h:354