OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.2
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  /// Strike Price
78  bool strikePrice (Decimal& price) const
79  {
80  return get (Tags::StrikePrice).toNumber (price);
81  }
82 
83  /// Put Or Call
85  {
86  return getIntEnumFieldValue<PutOrCall> (*this, Tags::PutOrCall);
87  }
88 
89  /// Version of an option.
91  {
92  return getInt32 (Tags::OptAttribute);
93  }
94 
95  /// Style family of an option.
97  {
98  return getIntEnumFieldValue<ExerciseStyle> (*this, Tags::ExerciseStyle);
99  }
100 
101  ///Settlement type.
103  {
104  return getIntEnumFieldValue<SettlMethod> (*this, Tags::SettlMethod);
105  }
106 
107  /// Product identifier.
109  {
110  return getGroup (Tags::NoMarketSegments).at (0).getUInt32 (Tags::MarketSegmentID);
111  }
112 
113  /// Creation time of flexible instruments.
114  bool transactTime (UInt64& time) const
115  {
116  return get (Tags::TransactTime).toNumber (time);
117  }
118 
119  ///
121  {
122  return getStringRef(Tags::Symbol);
123  }
124 
125  private:
127 
128  FlexibleInstrumentUpdate (const void* impl)
129  : Message (impl)
130  {
131  }
132  };
133  }
134  }
135 }
static Timestamp parse(const std::string &, TimestampFormat::Enum=TimestampFormat::YYYYMMDDHHMMSSNsec)
Definition: Timestamp.cpp:179
InstrumentType::Enum productComplex() const
Type of instrument.
bool strikePrice(Decimal &price) const
Strike Price.
ExerciseStyle::Enum exerciseStyle() const
Style family of an option.
const Tag SecurityUpdateAction
Definition: Tags.h:93
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:66
Int64 SecurityId
Alias for Security Id type.
Definition: Defines.h:51
Represents timestamp without time-zone information.
Definition: Timestamp.h:80
UInt32 optAttribute() const
Version of an option.
Timestamp maturityDate() const
Actual expiration day of the instrument (YYYYMMDD).
MarketSegmentId marketSegmentId() const
Product identifier.
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.
StringRef securityDesc() const
Security description.