OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.2
API documentation
FeedEngineImpl.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*
4 * Copyright Onix Solutions Limited [OnixS]. All rights reserved.
5 *
6 * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
7 * and international copyright treaties.
8 *
9 * Access to and use of the software is governed by the terms of the applicable ONIXS Software
10 * Services Agreement (the Agreement) and Customer end user license agreements granting
11 * a non-assignable, non-transferable and non-exclusive license to use the software
12 * for it's own data processing purposes under the terms defined in the Agreement.
13 *
14 * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
15 * of this source code or associated reference material to any other location for further reproduction
16 * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
17 *
18 * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
19 * the terms of the Agreement is a violation of copyright law.
20 */
21 #include <boost/scoped_ptr.hpp>
22 
23 #include <OnixS/HandlerCore/FeedEngine/MulticastFeedEngine.h>
24 #include <OnixS/HandlerCore/FeedEngine/FeedEngineSettings.h>
25 
27 
28 
29 namespace OnixS {
30 namespace Eurex {
31 namespace MarketData {
32 
33 class FeedEngineImpl : HandlerCore::MarketData::FE::FeedEngineListener
34 {
35 public:
36  /// Initialize new instance.
38 
39  /// Finalize instance.
40  virtual ~FeedEngineImpl();
41 
42  void start();
43 
44  const FeedEngineSettings& settings() const;
45 
46  std::string info() const;
47 
48  static HandlerCore::MarketData::FE::MulticastFeedEngine* getFeedEngine(FeedEngine& feedEngine)
49  {
50  return feedEngine.impl_->feedEngine_.get();
51  }
52 
53 private:
54  void onFeedEngineThreadBegin() override;
55 
56  void onFeedEngineThreadEnd() override;
57 
58  void onFeedEngineThreadIdle(HandlerCore::MarketData::FE::FeedEngineThreadIdle::Reason, UInt32&) override;
59 
60 private:
61  FeedEngineSettings settings_;
63  Eurex::MarketData::FeedEngine* publicFeedEngine_;
64 
65  boost::scoped_ptr<HandlerCore::MarketData::FE::MulticastFeedEngine> feedEngine_;
66 };
67 
68 
69 }}}
70 
71 
72 
Manages processing machinery for market data received from feeds.
Definition: FeedEngine.h:287
unsigned int UInt32
Definition: Numeric.h:41
Definition: Defines.h:30
static HandlerCore::MarketData::FE::MulticastFeedEngine * getFeedEngine(FeedEngine &feedEngine)
const FeedEngineSettings & settings() const
FeedEngineImpl(const FeedEngineSettings &settings, Eurex::MarketData::FeedEngineListener *listener, Eurex::MarketData::FeedEngine *publicFeedEngine)
Initialize new instance.
virtual ~FeedEngineImpl()
Finalize instance.
Collection of settings affecting Feed Engine behavior.
Definition: FeedEngine.h:97