OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.3
API documentation
DataRepository.hpp
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 "DataRepositoryConfig.hpp"
23 #include <logging/LogFacility.h>
24 #include "Formatting.h"
25 
26 namespace OnixS {
27 namespace Eurex {
28 namespace MarketData {
29 namespace Implementation {
30 
31 template <class TConfig>
32 struct DataRepository : public Logging::LogFacility
33 {
34  typedef Logging::LogFacility base;
35 
36  explicit DataRepository(const TConfig &config)
37  : base(config.name, config.parent, Logging::LOG_LEVEL_DEBUG)
38  , config_(config)
39  {
40  }
41 
42  virtual ~DataRepository() {}
43 
44 public:
45  typedef boost::function<void()> OnRequest;
46 
47 public:
48  void subscribeOnSnapshotStartRequest(const OnRequest callback) { onSnapshotStartRequest_ = callback; };
49  void subscribeOnSnapshotStopRequest (const OnRequest callback) { onSnapshotStopRequest_ = callback; };
50 
51  /// Log helper.
52  template<typename TMsg>
53  void log(const TMsg & msg)
54  {
55  if(config_.logger)
56  config_.logger->log(msg);
57  }
58 
60  {
61  config_.listenerHolder->invokeWarning(tb.toString());
62  log(ONIXS_LOG_WARN[this] << tb.toString());
63  }
64 
65 protected:
66  TConfig config_;
69 };
70 
71 }}}}
72 
Util::TextBuilder TextBuilder
Definition: Formatting.h:43
Definition: Defines.h:30
void subscribeOnSnapshotStopRequest(const OnRequest callback)
void subscribeOnSnapshotStartRequest(const OnRequest callback)
void reportWarning(const OnixS::Util::TextBuilder &tb)