OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  8.1.0
API documentation
InterfaceDescriptorBuilder.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 #pragma once
20 
21 #include <boost/atomic.hpp>
22 
23 #include <util/TextBuilder.h>
24 
25 #include <OnixS/HandlerCore/FeedEngine/AtomicMutex.h>
26 
28 
29 
30 namespace OnixS {
31 namespace Eurex {
32 namespace MarketData {
33 
34 class ProductSnapshot;
35 
36 namespace Implementation {
37 
38 
40 {
41 public:
42  explicit InterfaceDescriptorBuilder();
44 
45  void apply(const ProductSnapshot&);
46  void referenceDataReady();
47 
48  void reset();
49 
52 
55 
58 
59  std::string printDescriptorsInfo() const;
60 
61 private:
62  void applyDescriptor(const EmdiDescriptor&, const ProductInfo&);
63  void applyDescriptor(const MdiDescriptor&, const ProductInfo&);
64  void applyDescriptor(const EobiDescriptor&, const ProductInfo&);
65 
66 private:
67  boost::atomic<bool> referenceDataReady_;
68 
69  EmdiDescriptors emdiDescriptors_;
70  MdiDescriptors mdiDescriptors_;
71  EobiDescriptors eobiDescriptors_;
72 
73  typedef OnixS::HandlerCore::MarketData::FE::AtomicMutex Lock;
74  typedef OnixS::HandlerCore::MarketData::FE::AtomicMutexGuard Guard;
75  mutable Lock lock_;
76 };
77 
78 
79 
80 
81 
82 
83 
84 }}}}
EobiDescriptor::Collection EobiDescriptors
Definition: Defines.h:30
EmdiDescriptor::Collection EmdiDescriptors
MdiDescriptor::Collection MdiDescriptors
IInterfaceDescriptorProvider::MarketSegments MarketSegments