OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.2
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  explicit
38  UpdateInstrumentLegs (const Group& group)
40  {
41  }
42 
44  };
45 
46  /// Complex instrument update
47  class ONIXS_EUREX_EMDI_API ComplexInstrumentUpdate : public Message
48  {
49  public:
50  /// Security Update Action.
52  {
53  StringRef val;
54  return get (Tags::SecurityUpdateAction).toStringRef (val) ? val : StringRef();
55  }
56 
57  /// Instrument identifier.
59  {
60  return getInt64 (Tags::SecurityID);
61  }
62 
63  /// Security description
65  {
66  StringRef val;
67  return get (Tags::SecurityDesc).toStringRef (val) ? val : StringRef();
68  }
69 
70  /// Type of security.
72  {
73  return getIntEnumFieldValue<SecurityType> (*this, Tags::SecurityType);
74  }
75 
76  /// Standard strategy type for complex instruments, e.g. BER-C.
77  bool securitySubType (UInt32& type) const
78  {
79  return get (Tags::SecuritySubType).toNumber (type);
80  }
81 
82  /// Type of Market Data update action
84  {
85  return getNonZeroIntEnumFieldValue<InstrumentType> (*this, Tags::ProductComplex);
86  }
87 
88  /// Legs.
90  {
91  return UpdateInstrumentLegs ( getGroup (Tags::NoLegs) );
92  }
93 
94  /// Product identifier.
96  {
97  return getGroup (Tags::NoMarketSegments).at (0).getUInt32 (Tags::MarketSegmentID);
98  }
99 
100  /// Implied market indicator
102  {
103  return getIntEnumFieldValue<ImpliedMarketIndicator> (getGroup (Tags::NoMarketSegments).at (0), Tags::ImpliedMarketIndicator)
105  }
106 
107  /// Creation time of complex instruments.
108  bool transactTime (UInt64& time) const
109  {
110  return get (Tags::TransactTime).toNumber (time);
111  }
112 
113  private:
115 
116  ComplexInstrumentUpdate (const void* impl)
117  : Message (impl)
118  {
119  }
120  };
121  }
122  }
123 }
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: Defines.h:30
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.