24 #include <boost/functional/hash.hpp> 25 #include <boost/function.hpp> 30 #include <boost/scoped_ptr.hpp> 31 #include <boost/atomic.hpp> 33 #include "NamespaceHelper.h" 35 ONIXS_HANDLER_NAMESPACE_BEGIN
38 struct OrderExecutedMsg;
39 struct OrderExecutedWithPriceMsg;
40 struct OrderReplaceMsg;
41 struct OrderDeleteMsg;
44 class OrderBookInternal;
46 using OnixS::HandlerCore::MarketData::OrderBookRegistry;
50 static const size_t DefaultBookDepth = 5;
52 class OrderBookCreator :
public OnixS::HandlerCore::MarketData::FullOrderDepthBookCreator<OrderBookInternal, false>
60 boost::shared_ptr<OrderBookInternal> operator()(
const OrderBookId&
id)
const;
64 const size_t bookDepth_;
72 typedef OrderBookRegistry<OrderBookId, OrderBookInternal, OrderBookCreator>
BookRegistry;
85 void onBookOutOfDate(
const boost::function<
void(
const OrderBookInternal&)>& onOrderBookOutOfDate);
88 void snapshotRecoveryStarted();
89 void snapshotRecoveryFinished();
92 template <
typename OrderList>
93 bool checkOrderExistence(
const OrderList& map,
OrderId orderid,
bool shouldExist);
100 boost::scoped_ptr<BookRegistry> impl_;
101 OnOrderBookUpdatedCallback onOrderBookUpdated_;
103 typedef OnixS::PoolAllocator<BookPtr> BookPtrMapAllocator;
104 std::set<BookPtr, std::less<BookPtr>, BookPtrMapAllocator> books_;
106 boost::atomic_bool snapshotRecoveryInProgress_;
110 ONIXS_HANDLER_NAMESPACE_END
OrderBookRegistry< OrderBookId, OrderBookInternal, OrderBookCreator > BookRegistry
UInt64 OrderId
Alias for OrderId type.
OnixS::HandlerCore::MarketData::FullOrderDepthBookCreator< OrderBookInternal, false > FullOrderDepthBookCreator
BookRegistry::BookPtr BookPtr
UInt32 OrderBookId
Alias for Security Id type.
OrderDepthBook::OrderIdMap OrderIdMap
boost::function< void(const OrderBookInternal &)> OnOrderBookUpdatedCallback
OrderBookInternal::OrderIdMap OrderIdMap