OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.0.3
API documentation
ComplexInstrumentUpdate.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  class UpdateInstrumentLegs : public TypedGroup<InstrumentLeg>
35  {
36  private:
37  UpdateInstrumentLegs (const Group& group)
39  {
40  }
41 
43  };
44 
45  /// Complex instrument update
46  class ONIXS_EUREX_EMDI_API ComplexInstrumentUpdate : public Message
47  {
48  public:
49  /// Security Update Action.
51  {
52  StringRef val;
53  return get (Tags::SecurityUpdateAction).toStringRef (val) ? val : StringRef();
54  }
55 
56  /// Instrument identifier.
58  {
59  return getInt64 (Tags::SecurityID);
60  }
61 
62  /// Security description
64  {
65  StringRef val;
66  return get (Tags::SecurityDesc).toStringRef (val) ? val : StringRef();
67  }
68 
69  /// Type of security.
71  {
72  return getIntEnumFieldValue<SecurityType> (*this, Tags::SecurityType);
73  }
74 
75  /// Standard strategy type for complex instruments, e.g. BER-C.
76  bool securitySubType (UInt32& type) const
77  {
78  return get (Tags::SecuritySubType).toNumber (type);
79  }
80 
81  /// Type of Market Data update action
83  {
84  return getNonZeroIntEnumFieldValue<InstrumentType> (*this, Tags::ProductComplex);
85  }
86 
87  /// Legs.
89  {
90  return UpdateInstrumentLegs ( getGroup (Tags::NoLegs) );
91  }
92 
93  /// Product identifier.
95  {
96  return getGroup (Tags::NoMarketSegments).at (0).getUInt32 (Tags::MarketSegmentID);
97  }
98 
99  /// Implied market indicator
101  {
102  return getIntEnumFieldValue<ImpliedMarketIndicator> (getGroup (Tags::NoMarketSegments).at (0), Tags::ImpliedMarketIndicator)
104  }
105 
106  /// Creation time of complex instruments.
107  bool transactTime (UInt64& time) const
108  {
109  return get (Tags::TransactTime).toNumber (time);
110  }
111 
112  private:
114 
115  ComplexInstrumentUpdate (const void* impl)
116  : Message (impl)
117  {
118  }
119  };
120  }
121  }
122 }
SecurityId securityId() const
Instrument identifier.
StringRef securityUpdateAction() const
Security Update Action.
const Tag SecurityUpdateAction
Definition: Tags.h:93
bool transactTime(UInt64 &time) const
Creation time of complex instruments.
InstrumentType::Enum productComplex() const
Type of Market Data update action.
unsigned int UInt32
Definition: Numeric.h:41
Definition: Group.h:25
SecurityType::Enum securityType() const
Type of security.
Int64 SecurityId
Alias for Security Id type.
Definition: Defines.h:51
bool impliedMarketIndicator() const
Implied market indicator.
MarketSegmentId marketSegmentId() const
Product identifier.
StringRef securityDesc() const
Security description.
const Tag ImpliedMarketIndicator
Definition: Tags.h:101
UInt32 MarketSegmentId
Alias for Market Segment ID type.
Definition: Defines.h:40
bool securitySubType(UInt32 &type) const
Standard strategy type for complex instruments, e.g. BER-C.