The ICE Exchange provides following types of product definitions:
The product definitions could be received in two ways:
The table below describes how the product definitions represented in the OnixS ICE iMpact Multicast Price Feed Handler API:
Below is the example of creating subscription for the Futures/OTC of the 'IPE Brent Futures' (5) market type:
The Handler provides a special mode when it only receives product definitions and then stopped. To activate this mode you need to set OnixS::ICE::iMpact::MarketData::HandlerSettings::receiveProductDefinitionsOnly
to true
. After this, you can create and start the Handler in the usual way, but the behavior will be different. The Handler establishes a TCP connection to the ICE server, sends a Login request, and according to market subscriptions, sends Product Definition requests. When all the requested product definitions are received, the Handler stops. The Handler's state changes in the following sequence:
Stopped
Started
SecurityDefinitionsRecoveryStarted
SecurityDefinitionsRecoveryFinished
Stopped
This mode is using, if you want to periodically update information about product definitions in your local store and have a simple implementation without tracking the Handler state and calling the OnixS::ICE::iMpact::MarketData::Handler::stop
method to stop the Handler.
Product definitions can be stored for future use by associating them with a unique market ID field. When a new product definition is received, the Handler calls a callback. The user code can store a product definition in a local storage for future use.
The following sample demonstrates how product definition can be stored by the appropriate callback: