OnixS C++ Eurex T7 Market and Reference Data (EMDI, MDI, RDI, EOBI) Handlers  17.0.1
API documentation
InterfaceDescriptorProvider.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 
22 #include <set>
23 #include <vector>
24 #include <map>
25 
29 
30 namespace OnixS
31 {
32  namespace Eurex
33  {
34  namespace MarketData
35  {
36  /// Product information
37  struct ProductInfo
38  {
39  /// Constructor
41  : marketSegmentId()
42  , partitionId()
43  , marketDepth()
44  , mdiMarketDepth()
45  {
46  }
47 
48  /// Market segment (product name).
50 
51  /// Market segment id.
53 
54  /// Partition id.
56 
57  /// Maximum number of price levels for the product in EMDI.
59 
60  /// Maximum number of price levels for the product in MDI.
62 
63  typedef std::vector<ProductInfo> Collection;
64  };
65 
67 
68  /// Export/Import template instantiations.
70  {
71  typedef std::set<PartitionId> PartitionIdFilters;
72  typedef std::set<MarketSegmentId> MarketSegmentIdFilters;
73  typedef std::set<SecurityId> SecurityIdFilters;
74  };
75 
79 
80  /// Export/Import template instantiations.
82  {
83  typedef std::map<MarketSegmentId, MarketDepth> MarketSegmentId2Depth;
84  };
85 
87 
89  {
90  /// Contains information about all products for the interface.
91  ProductInfos productInfos;
92 
93  /// Contains market segment to maximum number of price levels for the product map
94  MarketSegmentId2Depth marketSegmentId2Depth;
95 
96  /// Contains list of interface partition ids
97  PartitionIdFilters partitionIdFilters;
98 
99  /// Contains list of market segment ids
100  MarketSegmentIdFilters marketSegmentIdFilters;
101 
102  typedef std::vector<EmdiDescriptor> Collection;
103  };
104 
106 
108  {
109  /// Contains information about all products for the interface.
110  ProductInfos productInfos;
111 
112  /// Contains market segment to maximum number of price levels for the product map
113  MarketSegmentId2Depth marketSegmentId2Depth;
114 
115  /// Contains list of interface partition ids
116  PartitionIdFilters partitionIdFilters;
117 
118  /// Contains list of market segment ids
119  MarketSegmentIdFilters marketSegmentIdFilters;
120 
121  typedef std::vector<MdiDescriptor> Collection;
122  };
123 
125 
127  {
128  /// Contains information about all products for the interface.
129  ProductInfos productInfos;
130 
131  /// Contains list of interface partition ids
132  PartitionIdFilters partitionIdFilters;
133 
134  /// Contains list of market segment ids
135  MarketSegmentIdFilters marketSegmentIdFilters;
136 
137  typedef std::vector<EobiDescriptor> Collection;
138  };
139 
141 
142  struct ONIXS_EUREX_EMDI_API IInterfaceDescriptorProvider
143  {
144  public:
145  typedef std::set<MarketSegment> MarketSegments;
146 
147  /// Returns list of EMDI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
148  /// to receive market data for products specified by productNames.
149  virtual EmdiDescriptors findEmdiDescriptors (const MarketSegments& productNames) const = 0;
150 
151  /// Returns list of EMDI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
152  /// to receive market data for all products.
153  virtual EmdiDescriptors findAllEmdiDescriptors () const = 0;
154 
155 
156  /// Returns list of MDI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
157  /// to receive market data for products specified by productNames.
158  virtual MdiDescriptors findMdiDescriptors(const MarketSegments& productNames) const = 0;
159 
160  /// Returns list of MDI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
161  /// to receive market data for all products.
162  virtual MdiDescriptors findAllMdiDescriptors() const = 0;
163 
164 
165  /// Returns list of EOBI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
166  /// to receive market data for products specified by productNames.
167  virtual EobiDescriptors findEobiDescriptors (const MarketSegments& productNames) const = 0;
168 
169  /// Returns list of EOBI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
170  /// to receive market data for all products.
171  virtual EobiDescriptors findAllEobiDescriptors () const = 0;
172 
173  protected:
174  /// Destructor.
176  };
177 
179  }
180  }
181 }
MarketSegmentIdFilters marketSegmentIdFilters
Contains list of market segment ids.
Export/Import template instantiations.
MarketDepthTraits::MarketSegmentId2Depth MarketSegmentId2Depth
UInt32 PartitionId
Alias for Partition ID type.
Definition: Defines.h:48
UInt32 mdiMarketDepth
Maximum number of price levels for the product in MDI.
EobiDescriptor::Collection EobiDescriptors
FilteringTraits::PartitionIdFilters PartitionIdFilters
PartitionIdFilters partitionIdFilters
Contains list of interface partition ids.
MarketSegmentId2Depth marketSegmentId2Depth
Contains market segment to maximum number of price levels for the product map.
UInt32 marketDepth
Maximum number of price levels for the product in EMDI.
unsigned int UInt32
Definition: Numeric.h:41
Definition: Defines.h:30
FilteringTraits::MarketSegmentIdFilters MarketSegmentIdFilters
ProductInfos productInfos
Contains information about all products for the interface.
std::string MarketSegment
Alias for Market Segment type (Product name).
Definition: Defines.h:37
MarketSegmentId marketSegmentId
Market segment id.
PartitionIdFilters partitionIdFilters
Contains list of interface partition ids.
ProductInfos productInfos
Contains information about all products for the interface.
EmdiDescriptor::Collection EmdiDescriptors
MdiDescriptor::Collection MdiDescriptors
FilteringTraits::SecurityIdFilters SecurityIdFilters
Export/Import template instantiations.
MarketSegmentIdFilters marketSegmentIdFilters
Contains list of market segment ids.
PartitionIdFilters partitionIdFilters
Contains list of interface partition ids.
MarketSegmentId2Depth marketSegmentId2Depth
Contains market segment to maximum number of price levels for the product map.
UInt32 MarketSegmentId
Alias for Market Segment ID type.
Definition: Defines.h:40
std::map< MarketSegmentId, MarketDepth > MarketSegmentId2Depth
MarketSegment marketSegment
Market segment (product name).
MarketSegmentIdFilters marketSegmentIdFilters
Contains list of market segment ids.
IInterfaceDescriptorProvider::MarketSegments MarketSegments
ProductInfos productInfos
Contains information about all products for the interface.
ProductInfo::Collection ProductInfos