21 #include <licensing/LicenseChecker.h> 23 #include <OnixS/HandlerCore/MulticastFeedHandler.h> 25 #include <OnixS/ItchCore/Types.h> 30 #include <OnixS/ItchCore/MoldUDP64/PacketProcessor.h> 36 #include "NamespaceHelper.h" 40 namespace HandlerCore {
namespace Common {
44 namespace ItchCore {
namespace MoldUDP64 {
45 class RetransmissionService;
50 ONIXS_HANDLER_NAMESPACE_BEGIN
56 class MessageRepository;
57 class OrderBookAllocator;
63 class HandlerImpl :
public Licensing::LicenseChecker,
public HandlerCore::MarketData::MulticastFeedHandler
65 typedef HandlerCore::MarketData::MulticastFeedHandler base;
88 void invokeError(
const std::string& description)
override;
89 void invokeWarning(
const std::string& description)
override;
92 void commonLog (
int logLevel,
const char * msg,
size_t length);
94 void setOrderBookIdFilter(
const std::set<OrderBookId>& orderBookIdFilter);
97 virtual void onStateChanged(State::Enum newState);
98 void onPrepareLogPlayer(HandlerCore::Common::LogPlayer* logPlayer);
99 bool parseGlimpseStart(
const std::string& logLine, HandlerCore::Common::LogEntry&);
102 void onStarting()
override;
103 void onStopping()
override;
106 static std::string os();
108 void onPacket(OnixS::HandlerCore::MarketData::FE::PacketContainer& packetContainer,
bool fromCache);
109 void onHeartbeat(OnixS::HandlerCore::MarketData::FE::PacketContainer& packetContainer);
111 void onMulticastInactivity();
114 void onReplayPacket(OnixS::HandlerCore::MarketData::FE::PacketContainer& packetContainer);
116 void onReplayFailure(
const ItchCore::SessionType&,
SequenceNumber begin, ItchCore::Binary8 count);
118 void onGlimpseFailure(
const std::string& what);
119 void onGlimpseWarning(
const std::string& what);
121 void onGlimpseRestarted();
123 void initRetransmissionService();
128 boost::scoped_ptr<OrderBookAllocator> bookAllocator_;
129 boost::scoped_ptr<HandlerCore::Common::HandlerLogger> logger_;
131 boost::scoped_ptr<ListenerHolder> listenerHolder_;
133 MulticastFeedClusterPtr realtimeFeeds_;
134 UnicastFeedClusterPtr gapResponseFeeds_;
136 boost::scoped_ptr<RealtimePacketProcessor> realtimePacketProcessor_;
138 boost::scoped_ptr<MessageRepository> messageRepository_;
140 boost::scoped_ptr<OnixS::ItchCore::MoldUDP64::RetransmissionService> retransmissionService_;
142 boost::scoped_ptr<GlimpseService> glimpseService_;
144 bool backtestingMode_;
145 boost::scoped_ptr<RetransmissionPacketProcessor> retransmissionPacketProcessor_;
146 boost::scoped_ptr<GlimpsePacketProcessor> glimpsePacketProcessor_;
148 friend class OnixS::ItchCore::MoldUDP64::PacketProcessor<
HandlerImpl>;
161 ONIXS_HANDLER_NAMESPACE_END
UInt64 SequenceNumber
Alias for Sequence Number type.
OnixS::ItchCore::MoldUDP64::PacketProcessor< HandlerImpl > RealtimePacketProcessor
Defines ONIXS_SGXTITAN_ITCH_API which affect logs replay.
Handler configuration settings.
Impl(const HandlerSettings &settings)
Manages processing machinery for market data received from feeds.