OnixS Euronext XDP Handler for C++  1.29.2.6
Building and Maintaining Books by Yourself
Manipulating Books

Books Building Bricks

As it was said in previous topic, Handler builds and maintains books for each security by itself and notifies client code once book update takes place.

Sometimes there's a need to build and maintain books by own forces (for example, if there's no need in information of the lowest price-levels). For this purpose, Handler provides advanced events which contain detailed information about the changes needed to be applied to a book to bring it into an actual state.

To get nofied about detailed changes into books for a particular security, implement OnixS::Euronext::XDP::IncrementalBookListener interface and register it in the Handler via OnixS::Euronext::XDP::Handler::registerIncrementalBookListener member. Then you can use OnixS::Euronext::XDP::MarketListener::onDirectBookChanged and OnixS::Euronext::XDP::MarketListener::onImpliedBookChanged to get book change information.

Both methods expose detailed information of elementary change into book's bids and asks. For more details see the description and members of OnixS::Euronext::XDP::BookChange class which encapsulates a concept of book change.

Book Change Machinery and Relation with 'Book Updated' Event

Book Updated and Book Changed events are not mutually exclusive ones. It's possible to use both types of callbacks. Book changes represent more elementary (atomic) updates of a book. Therefore, Book Changed events may occur more frequently in compare to Book Updated event occasions. In fact, series of Book Changed callbacks occur before single occasion of Book Updated callback.

When order book is delivered via Book Updated callbacks, it's always in a valid and up-to-date state. In contrast, book change is an elementary action over the book and usually there're multiple updates inside single fix message. For this reason, book may not be in a valid state between two changes. Only when all the changes are processed from the single fix message, book can be considered as valid. Book Updated callbacks are called exactly at a time when all changes are processed and book appears to be valid and up-to-date.

To build an order book properly, it's necessary also to listen to OnixS::Euronext::XDP::MarketListener::onImpliedBookReset and OnixS::Euronext::XDP::MarketListener::onDirectBookReset callbacks to be informed when all security market data should be reset.