This page gives a high-level picture of what the Handler is, where it sits in a trading system, and how it relates to the other OnixS products. Read it first if you are evaluating the product or deciding which OnixS SDK your project actually needs.
The OnixS C++ ICE iMpact Multicast Price Feed Handler is the C++ edition of the ICE iMpact Market Data Handler SDK, a member of the OnixS directConnect family of venue-specific SDKs.
It is a market data library: it offers an API to receive market data from the ICE iMpact multicast feed. The Handler decodes the protocol, maintains order books and market states on your behalf, and reports the results to your application through callbacks. It ships as a native C++ library (see Distribution Package) that you link into your own process - not as a server, a daemon, or an end-user application.
The Handler owns everything between ICE and your application's event handlers. It uses both transports the feed defines: a TCP connection to the ICE server, used to log in and obtain the product definitions, and the multicast channels, which carry the live update messages and the snapshots needed for startup and recovery. Incoming packets are received and decoded by the Feed Engine's worker threads, applied to the order books the Handler maintains, and reported to your code through listeners.
In particular, the Handler is responsible for:
Your application is responsible for the trading logic on top: what to subscribe to, what to do with the book updates, and how to act on them.
Being explicit about the boundaries usually saves an evaluation cycle:
| Area | What the Handler provides |
|---|---|
| Instruments | Futures, options, OTC products, and Futures and Options UDS (user-defined strategies) |
| Book depth | Full Order Depth (FOD), Top 5 and Top 10 Price Levels, Top of Book (options only) |
| Price types | Non-implied and full-implied markets, subscribed independently |
| Subscription granularity | Per market, per multicast group, or per market type - see Subscribing to Multicast Groups and Selecting Securities of Interest |
| Recovery | Automatic gap detection, snapshot-based book recovery, reconnects, and session-number handling |
| Threading | Multiple Handlers over a shared or dedicated Feed Engine thread pool, with thread affinity control |
| Offline processing | Replay of recorded logs (Log Replay) and third-party captures (PCAP Replay) |
| Raw access | Message Deserialization and packet-level processing for custom pipelines |
| Verification | Local Order Book Verification and conformance testing tools (Conformance Tools Sample) |
| Performance | Low latency and high throughput - see Low Latency Best Practices |
The same ICE iMpact Market Data Handler SDK is offered for C++, .NET, and Java. The editions share the protocol coverage and the overall design - Handler, subscriptions, and listeners - but each one is a separate product with an API idiomatic to its language, and some concepts exist in one edition only. This Guide documents the C++ edition only. Contact Support if you need one of the other editions.
The Handler covers market data. The remaining ICE workflows are covered by sibling SDKs from the same directConnect family, all available for C++, .NET, and Java:
| Solution | Protocol | Purpose |
|---|---|---|
| ICE iMpact Market Data Handler SDK | iMpact multicast | This product. Real-time market data, order books, and market state. |
| ICE Binary Order Entry (BOE) Handler SDK | ICE BOE (binary) | Lowest-latency order entry over the ICE Binary Order Gateway. |
| ICE FIX Order Entry (ICE OS) Handler SDK | FIX | Order entry and execution over the ICE FIX order routing gateway. |
| ICE FIX Private Order Feed (ICE POF) Handler SDK | FIX | Private drop-copy style feed of your own order and execution activity. |
| ICE FIX Trade Capture (ICE TC) Handler SDK | FIX | Post-trade reporting and trade capture. |
A typical ICE deployment pairs this Handler with one of the order entry SDKs: the Handler feeds the strategy with prices, and the BOE or FIX Order Entry Handler sends the resulting orders.
The OnixS C++ FIX Engine is a general-purpose FIX protocol implementation used to build applications that speak FIX. It is a different kind of product and is not required by this Handler.
The distinction matters when reading OnixS materials that mention ICE:
OnixS provides equivalent market data handlers for other venues - CME Globex, Cboe, Eurex, B3, Euronext, and others. They are separate products with venue-specific APIs, because each exchange's protocol and book semantics differ. However, their C++ editions follow the same architectural concepts: a Handler object configured through settings, a Feed Engine owning the network threads, subscriptions, and listener-based event delivery. Experience with one C++ directConnect handler transfers well to another.