OnixS C++ SGX Titan ITCH Market Data Handler  1.2.2
API documentation
Handler.cpp
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 
22 
25 
26 #include "HandlerImpl.h"
27 #include "ListenerHolder.h"
28 #include "Version.h"
29 
30 #include "NamespaceHelper.h"
31 
32 ONIXS_HANDLER_NAMESPACE_BEGIN
33 
34 
35 Handler::Handler(const HandlerSettings & settings)
36  : impl_(new Impl(settings))
37 {
38 }
39 
41 {
42  delete impl_;
43 }
44 
46 {
47  if (HandlerState::Stopped == state())
48  impl_->listenerHolder().set (listener);
49  else
50  throw OperationException (__FUNCTION__, "Unable to change listener while handler connected");
51 }
52 
54 {
55  if (HandlerState::Stopped == state())
56  impl_->listenerHolder().set (listener);
57  else
58  throw OperationException (__FUNCTION__, "Unable to change listener while handler connected");
59 }
60 
62 {
63  if (HandlerState::Stopped == state())
64  impl_->listenerHolder().set (listener);
65  else
66  throw OperationException (__FUNCTION__, "Unable to change listener while handler connected");
67 }
68 
70 {
72  impl_->listenerHolder().set(listener);
73  else
74  throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
75 }
76 
78 {
80  impl_->listenerHolder().set(listener);
81  else
82  throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
83 }
84 
86 {
88  impl_->listenerHolder().set(listener);
89  else
90  throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
91 }
92 
94 {
96  impl_->listenerHolder().set(listener);
97  else
98  throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
99 }
100 
102 {
103  if (HandlerState::Stopped == state())
104  impl_->listenerHolder().set(listener);
105  else
106  throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
107 }
108 
110 {
111  if (HandlerState::Stopped == state())
112  impl_->listenerHolder().set(listener);
113  else
114  throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
115 }
116 
118 {
119  if (HandlerState::Stopped == state())
120  impl_->listenerHolder().set(listener);
121  else
122  throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
123 }
124 
126 {
127  if (HandlerState::Stopped == state())
128  impl_->listenerHolder().set(listener);
129  else
130  throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
131 }
132 
133 void Handler::setOrderBookIdFilter(const std::set<OrderBookId>& orderBookIdFilter)
134 {
135  if (HandlerState::Stopped == state())
136  impl_->setOrderBookIdFilter(orderBookIdFilter);
137  else
138  throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
139 }
140 
142 {
143  if (HandlerState::Stopped == state()) impl_->bindFeedEngine(feedEngine);
144  else throw OperationException(__FUNCTION__, "Unable to change listener while handler connected");
145 }
146 
148 {
149  impl_->start();
150 }
151 
152 void Handler::start(const ReplayOptions& options)
153 {
154  if (HandlerState::Stopped != state())
155  throw OperationException (__FUNCTION__, "Handler already started");
156 
157  impl_->start(options);
158 }
159 
160 void Handler::stop(bool wait)
161 {
162  impl_->stop(wait);
163 }
164 
166 {
167  return HandlerState::Enum(impl_->getState());
168 }
169 
170 /*
171 Logging
172 */
173 
174 void Handler::log (LogLevel::Enum logLevel, const char * logMessage, size_t length)
175 {
176  impl_->commonLog (int (logLevel), logMessage, length);
177 }
178 
179 void Handler::log (LogLevel::Enum logLevel, const char * logMessage)
180 {
181  impl_->commonLog (int (logLevel), logMessage, strlen (logMessage));
182 }
183 
184 void Handler::log (LogLevel::Enum logLevel, const std::string& str)
185 {
186  impl_->commonLog (int (logLevel), str.c_str(), str.length());
187 }
188 
189 /*
190 Information requests
191 */
192 
193 std::string Handler::licenseExpirationDate () const
194 {
195  return impl_->licenseExpirationDate();
196 }
197 
198 const char* Handler::version()
199 {
200  return Itch::version();
201 }
202 
203 ONIXS_HANDLER_NAMESPACE_END
void registerOrderBookListener(OrderBookListener *listener)
Definition: Handler.cpp:125
void registerReferenceDataListener(ReferenceDataListener *listener)
Definition: Handler.cpp:85
void setOrderBookIdFilter(const std::set< OrderBookId > &orderBookIdFilter)
void registerTimeMessageListener(TimeListener *listener)
Definition: Handler.cpp:69
void registerEventAndStateListener(EventAndStateChangeListener *listener)
Definition: Handler.cpp:77
void registerMessageListener(MessageListener *listener)
Definition: Handler.cpp:117
HandlerState::Enum state() const
Returns handler state.
Definition: Handler.cpp:165
virtual ~Handler()
Finalizes the Handler.
Definition: Handler.cpp:40
std::string licenseExpirationDate() const
Returns the license expiration date.
Definition: Handler.cpp:193
void log(LogLevel::Enum logLevel, const char *logMessage, size_t length)
Logs the given user-level message to the handler log.
Definition: Handler.cpp:174
Enum
Defines the state that the handler is in.
static const char * version()
Returns Handler&#39;s version.
Definition: Handler.cpp:198
void registerAuctionListener(AuctionListener *listener)
Definition: Handler.cpp:109
void commonLog(int logLevel, const char *msg, size_t length)
User&#39;s common log.
void registerWarningListener(WarningListener *listener)
Definition: Handler.cpp:53
void setOrderBookIdFilter(const std::set< OrderBookId > &orderBookIdFilter)
Set up Order BookId Filter.
Definition: Handler.cpp:133
void bindFeedEngine(FeedEngine &feedEngine)
void bindFeedEngine(FeedEngine &feedEngine)
Definition: Handler.cpp:141
void registerOrderListener(MarketByOrderListener *listener)
Definition: Handler.cpp:93
Defines ONIXS_SGXTITAN_ITCH_API which affect logs replay.
Definition: Replay.h:55
void registerTradeListener(TradeListener *listener)
Definition: Handler.cpp:101
void registerHandlerStateListener(HandlerStateListener *listener)
Definition: Handler.cpp:61
ListenerHolder & listenerHolder()
Returns commons services as shared object.
void stop(bool wait)
Stop handler.
Definition: Handler.cpp:160
void registerErrorListener(ErrorListener *listener)
Definition: Handler.cpp:45
Manages processing machinery for market data received from feeds.
Definition: FeedEngine.h:254