An important issue that the users of OnixS C++ ICE iMpact Multicast Price Feed Handler library need to consider is the threading model that is used by the components of the application. The threading model of a library determines how the methods of listeners are assigned to threads for execution and synchronization.
The Handler processes market data coming from multicast feeds asynchronously. The Handler uses an internal thread pool whose size depends on multiple factors. All threads are spawned as soon as market data processing begins and run until it is completed. The Handler spawns no additional threads while it is running.
The Handler may call ErrorListener members simultaneously from different threads. Invocation of any member of the ErrorListener class is not synchronized by the Handler.
The Handler may call FeedListener members simultaneously from different threads. Invocation of any member of the FeedListener class is not synchronized by the Handler.
The Handler can call HandlerStateChangeListener members only from a single thread.
The Handler can call OrderBookChangeListener members only from a single thread.
The Handler can call OrderBookUpdateListener members only from a single thread.
The Handler can call OrderBookBundleUpdateListener members only from a single thread.
The Handler can call ExchangeListener members only from a single thread.