21 #include <boost/function.hpp> 22 #include <boost/scoped_ptr.hpp> 24 #include <OnixS/ItchCore/Types.h> 25 #include <OnixS/ItchCore/SoupBinTCP/ReconnectableSession.h> 27 #include "NamespaceHelper.h" 30 namespace HandlerCore {
35 ONIXS_HANDLER_NAMESPACE_BEGIN
37 struct HandlerSettings;
39 class GlimpseService :
public Logging::LogFacility,
private OnixS::ItchCore::SoupBinTCP::ReconnectableSessionListener
50 const Logging::LogFacility* parent,
51 HandlerCore::Common::HandlerLogger* logger);
55 void request(
const OnixS::ItchCore::SessionType& session,
SequenceNumber requestedSequence);
59 bool inProgress()
const;
61 void subscribeOnFailure(OnFailureCallback callback);
62 void subscribeOnWarning(OnWarningCallback callback);
63 void subscribeOnMessage(OnMessageCallback callback);
64 void subscribeOnRestarted(OnRestartedCallback callback);
69 template<
typename TMsg>
70 void log (
const TMsg & msg) {
if(logger_) logger_->log (msg); }
72 void processData(OnixS::ItchCore::SoupBinTCP::ReconnectableSession& session,
const void* data, UInt16 size);
74 void invokeOnFailure(
const std::string&);
75 void invokeOnWarning(
const std::string&);
78 void invokeOnRestarted();
81 void onError(OnixS::ItchCore::SoupBinTCP::ReconnectableSession&,
const std::string&)
override;
82 void onWarning(OnixS::ItchCore::SoupBinTCP::ReconnectableSession&,
const std::string&)
override;
83 void onStateChange(OnixS::ItchCore::SoupBinTCP::ReconnectableSession&,
84 OnixS::ItchCore::SoupBinTCP::ReconnectableSessionState::Enum oldState,
85 OnixS::ItchCore::SoupBinTCP::ReconnectableSessionState::Enum newState)
override;
86 void onData(OnixS::ItchCore::SoupBinTCP::ReconnectableSession&,
const void* data, UInt16 size)
override;
90 const OnixS::ItchCore::SoupBinTCP::ReconnectableSessionSettings sessionSettings_;
91 OnixS::ItchCore::SoupBinTCP::ConnectivitySettings sessionConnectivitySettings_;
92 HandlerCore::Common::HandlerLogger* logger_;
94 boost::scoped_ptr<OnixS::ItchCore::SoupBinTCP::ReconnectableSession> session_;
96 boost::atomic_bool inProgress_;
98 OnFailureCallback onFailureCallback_;
99 OnWarningCallback onWarningCallback_;
100 OnMessageCallback onMessageCallback_;
101 OnRestartedCallback onRestartedCallback_;
103 typedef OnixS::Concurrency::RecursiveMutex Mutex;
104 typedef OnixS::Concurrency::Guard<OnixS::Concurrency::Mutex> Guard;
106 mutable Mutex sessionLock_;
107 std::string sessionId_;
111 ONIXS_HANDLER_NAMESPACE_END
boost::function< void(const DataSource &, const IncomingMessage *)> OnMessageCallback
UInt64 SequenceNumber
Alias for Sequence Number type.
boost::function< void(const std::string &)> OnFailureCallback
boost::function< void()> OnRestartedCallback
boost::function< void(const std::string &)> OnWarningCallback
Handler configuration settings.