OnixS ICE iMpact Multicast Price Feed Handler C++ library 8.18.0
API documentation
Loading...
Searching...
No Matches
Event Listeners

Events in the Handler

There were five major events exposed by the Handler: Exchange message received, Order Book Changed, Handler (Feed) state changed and Error occurred.

Exchange message received event is fired by the Handler at the time when a subscription is being started. Handler calls associated listener (event handler) for each message it receives. Invocation of the event handler is performed in the same thread in which OnixS::ICE::iMpact::MarketData::Handler::start member was called. Once the subscription is successfully started, the event of this type will no more be fired for subscribed markets (until next start).

Order Book changed event is raised by the Handler in response to received notifications from Multicast Price Feed about added or modified orders, changes in price levels, performed trades, etc. Events of this type occur only when the subscription is active. Associated listener will never be called before OnixS::ICE::iMpact::MarketData::Handler::start succeed and after subscription will be stopped using OnixS::ICE::iMpact::MarketData::Handler::stop member.

Handler (Feed) state changed event is raised by the Handler at the time when the handler' or feed' state is changed.

The Error occurred event is fired by the Handler if any error condition met. This could be a generic error like inability to write to a log file as well as some kind of failure scenario like the reception of a message from Multicast Price Feed with the invalid sequence number. This event is raised by the Handler only when a subscription is active.

Listening for a particular event

For each of these events Handler provides an interface (C++ class with virtual members) like OnixS::ICE::iMpact::MarketData::ErrorListener which has to be implemented to handle the event and a member like OnixS::ICE::iMpact::MarketData::Handler::registerErrorListener which allows to associate instance of event handler with a appropriate event in scope of particular ICE iMpact Handler.

Below table depicts correspondence between events, interfaces for listeners and the Handler's members to subscribe to an event:

EventListener interface to be implementedHandler's member to register listener
Futures/OTC Product Definition ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onFuturesProductDefinitionOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Strip Info receivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onStripInfoOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Options Product Definition ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onOptionsProductDefinitionOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Options Strategy Definition ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onOptionsStrategyDefinitionOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Market Snapshot Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onMarketSnapshotOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Trade Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onTradeOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Investigated Trade Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onInvestigatedTradeOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Cancelled Trade Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onCancelledTradeOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Market Statistics Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onMarketStatisticsOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Market State Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onMarketStateChangeOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
System Text Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onSystemTextOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Open Interest Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onOpenInterestOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Open Price Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onOpenPriceOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Settlement Price Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onSettlementPriceOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Marker/Index Prices Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onMarkerIndexPricesOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
End Of Day Market Summary ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onEndOfDayMarketSummaryOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Market Event Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onMarketEventOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Pre-Open Price Indicator Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onPreOpenPriceIndicatorOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Market Snapshot Order Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onMarketSnapshotOrderOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Add/Modify Order Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onAddModifyOrderOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Delete Order Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onDeleteOrderOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Bundle Marker Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onBundleMarkerOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Market Snapshot Price Level Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onMarketSnapshotPriceLevelOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Add Price Level Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onAddPriceLevelOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Change Price Level Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onChangePriceLevelOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Delete Price Level Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onDeletePriceLevelOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
New Options Strategy Definition Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onNewOptionsStrategyDefinitionOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
New Options Market Definition Message ReceivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onNewOptionsMarketDefinitionOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
RFQ Message receivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onRfqOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Option Open Interest Message receivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onOptionOpenInterestOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Option Settlement Price Message receivedOnixS::ICE::iMpact::MarketData::ExchangeListener::onOptionSettlementPriceOnixS::ICE::iMpact::MarketData::Handler::registerExchangeListener
Order Book updatedOnixS::ICE::iMpact::MarketData::OrderBookUpdateListener::onOrderBookUpdatedOnixS::ICE::iMpact::MarketData::Handler::registerOrderBookUpdateListener
Order Book updated after message bundleOnixS::ICE::iMpact::MarketData::OrderBookBundleUpdateListener::onOrderBookBundleUpdatedOnixS::ICE::iMpact::MarketData::Handler::registerOrderBookBundleUpdateListener
Handler state changeOnixS::ICE::iMpact::MarketData::HandlerStateChangeListener::onHandlerStateChangeOnixS::ICE::iMpact::MarketData::Handler::registerHandlerStateChangeListener
Feed startedOnixS::ICE::iMpact::MarketData::FeedListener::onFeedStartedOnixS::ICE::iMpact::MarketData::Handler::registerFeedListener
Feed stoppedOnixS::ICE::iMpact::MarketData::FeedListener::onFeedStoppedOnixS::ICE::iMpact::MarketData::Handler::registerFeedListener
Feed error occurredOnixS::ICE::iMpact::MarketData::FeedListener::onFeedErrorOnixS::ICE::iMpact::MarketData::Handler::registerFeedListener
Multicast message block beginOnixS::ICE::iMpact::MarketData::FeedListener::onMulticastMessageBlockBeginOnixS::ICE::iMpact::MarketData::Handler::registerFeedListener
Multicast message block endOnixS::ICE::iMpact::MarketData::FeedListener::onMulticastMessageBlockEndOnixS::ICE::iMpact::MarketData::Handler::registerFeedListener
Error occurredOnixS::ICE::iMpact::MarketData::ErrorListenerOnixS::ICE::iMpact::MarketData::Handler::registerErrorListener
Log replay finishedOnixS::ICE::iMpact::MarketData::LogReplayListener::onReplayFinishedOnixS::ICE::iMpact::MarketData::Handler::registerLogReplayListener

Example

The following sample demonstrates how to receive notifications about errors occurred in the Handler:

// `ErrorListener` interface can be hidden from publicity
// to make Handler 'exclusive' user of onError member.
{
public:
// Assigns itself to given handler as error listener.
{
handler->registerErrorListener(this);
}
private:
// Implements base interface to dump errors onto console.
void onError(const Error& error)
{
std::cerr << "Error occurred: " << error.description() << std::endl;
}
};
HandlerSettings handlerSettings;
Handler handler(handlerSettings);
ErrorDumper errorDumper(&handler);
Defines the interface through which the Handler notifies subscribers about errors occurred while proc...
virtual void onError(const Error &error)=0
void registerErrorListener(ErrorListener *listener)