OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.2
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  {
45  }
46 
47  /// Market segment (product name).
49 
50  /// Market segment id.
52 
53  /// Partition id.
55 
56  /// Maximum number of price levels for the product in EMDI.
58 
59  /// Maximum number of price levels for the product in MDI.
61 
62  typedef std::vector<ProductInfo> Collection;
63  };
64 
66 
67  /// Export/Import template instantiations.
69  {
70  typedef std::set<PartitionId> PartitionIdFilters;
71  typedef std::set<MarketSegmentId> MarketSegmentIdFilters;
72  typedef std::set<SecurityId> SecurityIdFilters;
73  };
74 
78 
79  /// Export/Import template instantiations.
81  {
82  typedef std::map<MarketSegmentId, MarketDepth> MarketSegmentId2Depth;
83  };
84 
86 
88  {
89  /// Contains information about all products for the interface.
90  ProductInfos productInfos;
91 
92  /// Contains market segment to maximum number of price levels for the product map
93  MarketSegmentId2Depth marketSegmentId2Depth;
94 
95  /// Contains list of interface partition ids
96  PartitionIdFilters partitionIdFilters;
97 
98  /// Contains list of market segment ids
99  MarketSegmentIdFilters marketSegmentIdFilters;
100 
101  typedef std::vector<EmdiDescriptor> Collection;
102  };
103 
105 
107  {
108  /// Contains information about all products for the interface.
109  ProductInfos productInfos;
110 
111  /// Contains market segment to maximum number of price levels for the product map
112  MarketSegmentId2Depth marketSegmentId2Depth;
113 
114  /// Contains list of interface partition ids
115  PartitionIdFilters partitionIdFilters;
116 
117  /// Contains list of market segment ids
118  MarketSegmentIdFilters marketSegmentIdFilters;
119 
120  typedef std::vector<MdiDescriptor> Collection;
121  };
122 
124 
126  {
127  /// Contains information about all products for the interface.
128  ProductInfos productInfos;
129 
130  /// Contains list of interface partition ids
131  PartitionIdFilters partitionIdFilters;
132 
133  /// Contains list of market segment ids
134  MarketSegmentIdFilters marketSegmentIdFilters;
135 
136  typedef std::vector<EobiDescriptor> Collection;
137  };
138 
140 
141  struct ONIXS_EUREX_EMDI_API IInterfaceDescriptorProvider
142  {
143  public:
144  typedef std::set<MarketSegment> MarketSegments;
145 
146  /// Returns list of EMDI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
147  /// to receive market data for products specified by productNames.
148  virtual EmdiDescriptors findEmdiDescriptors (const MarketSegments& productNames) const = 0;
149 
150  /// Returns list of EMDI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
151  /// to receive market data for all products.
152  virtual EmdiDescriptors findAllEmdiDescriptors () const = 0;
153 
154 
155  /// Returns list of MDI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
156  /// to receive market data for products specified by productNames.
157  virtual MdiDescriptors findMdiDescriptors(const MarketSegments& productNames) const = 0;
158 
159  /// Returns list of MDI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
160  /// to receive market data for all products.
161  virtual MdiDescriptors findAllMdiDescriptors() const = 0;
162 
163 
164  /// Returns list of EOBI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
165  /// to receive market data for products specified by productNames.
166  virtual EobiDescriptors findEobiDescriptors (const MarketSegments& productNames) const = 0;
167 
168  /// Returns list of EOBI descriptors with filled partitionIdFilters and marketSegmentIdFilters to allow user
169  /// to receive market data for all products.
170  virtual EobiDescriptors findAllEobiDescriptors () const = 0;
171 
172  protected:
173  /// Destructor.
175  };
176 
178  }
179  }
180 }
181 
182 
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