OnixS ICE iMpact Multicast Price Feed Handler C++ library 8.18.0
Users' manual and 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:

Event Listener interface to be implemented Handler's member to register listener
Futures/OTC Product Definition Received ExchangeListener::onFuturesProductDefinition Handler::registerExchangeListener
Strip Info received ExchangeListener::onStripInfo Handler::registerExchangeListener
Options Product Definition Received ExchangeListener::onOptionsProductDefinition Handler::registerExchangeListener
Options Strategy Definition Received ExchangeListener::onOptionsStrategyDefinition Handler::registerExchangeListener
Market Snapshot Message Received ExchangeListener::onMarketSnapshot Handler::registerExchangeListener
Trade Message Received ExchangeListener::onTrade Handler::registerExchangeListener
Investigated Trade Message Received ExchangeListener::onInvestigatedTrade Handler::registerExchangeListener
Cancelled Trade Message Received ExchangeListener::onCancelledTrade Handler::registerExchangeListener
Market Statistics Message Received ExchangeListener::onMarketStatistics Handler::registerExchangeListener
Market State Message Received ExchangeListener::onMarketStateChange Handler::registerExchangeListener
System Text Message Received ExchangeListener::onSystemText Handler::registerExchangeListener
Open Interest Message Received ExchangeListener::onOpenInterest Handler::registerExchangeListener
Open Price Message Received ExchangeListener::onOpenPrice Handler::registerExchangeListener
Settlement Price Message Received ExchangeListener::onSettlementPrice Handler::registerExchangeListener
Marker/Index Prices Message Received ExchangeListener::onMarkerIndexPrices Handler::registerExchangeListener
End Of Day Market Summary Received ExchangeListener::onEndOfDayMarketSummary Handler::registerExchangeListener
Market Event Message Received ExchangeListener::onMarketEvent Handler::registerExchangeListener
Pre-Open Price Indicator Message Received ExchangeListener::onPreOpenPriceIndicator Handler::registerExchangeListener
Market Snapshot Order Message Received ExchangeListener::onMarketSnapshotOrder Handler::registerExchangeListener
Add/Modify Order Message Received ExchangeListener::onAddModifyOrder Handler::registerExchangeListener
Delete Order Message Received ExchangeListener::onDeleteOrder Handler::registerExchangeListener
Bundle Marker Message Received ExchangeListener::onBundleMarker Handler::registerExchangeListener
Market Snapshot Price Level Message Received ExchangeListener::onMarketSnapshotPriceLevel Handler::registerExchangeListener
Add Price Level Message Received ExchangeListener::onAddPriceLevel Handler::registerExchangeListener
Change Price Level Message Received ExchangeListener::onChangePriceLevel Handler::registerExchangeListener
Delete Price Level Message Received ExchangeListener::onDeletePriceLevel Handler::registerExchangeListener
New Options Strategy Definition Message Received ExchangeListener::onNewOptionsStrategyDefinition Handler::registerExchangeListener
New Options Market Definition Message Received ExchangeListener::onNewOptionsMarketDefinition Handler::registerExchangeListener
RFQ Message received ExchangeListener::onRfq Handler::registerExchangeListener
Option Open Interest Message received ExchangeListener::onOptionOpenInterest Handler::registerExchangeListener
Option Settlement Price Message received ExchangeListener::onOptionSettlementPrice Handler::registerExchangeListener
Order Book updated OrderBookUpdateListener::onOrderBookUpdated Handler::registerOrderBookUpdateListener
Order Book updated after message bundle OrderBookBundleUpdateListener::onOrderBookBundleUpdated Handler::registerOrderBookBundleUpdateListener
Handler state change HandlerStateChangeListener::onHandlerStateChange Handler::registerHandlerStateChangeListener
Feed started FeedListener::onFeedStarted Handler::registerFeedListener
Feed stopped FeedListener::onFeedStopped Handler::registerFeedListener
Feed error occurred FeedListener::onFeedError Handler::registerFeedListener
Multicast message block begin FeedListener::onMulticastMessageBlockBegin Handler::registerFeedListener
Multicast message block end FeedListener::onMulticastMessageBlockEnd Handler::registerFeedListener
Error occurred ErrorListener Handler::registerErrorListener
Log replay finished LogReplayListener::onReplayFinished 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)