25 #include <OnixS/HandlerCore/OrderBook.h> 27 #include <OnixS/Core/Memory/FixedBlockAllocator.h> 29 #include "NamespaceHelper.h" 31 ONIXS_HANDLER_NAMESPACE_BEGIN
52 static const size_t DefaultMaxBooksAmount = 500;
56 typedef OnixS::HandlerCore::MarketData::DefaultBaseFullOrderDepthBook::BaseAskMap
BaseAskMap;
57 typedef OnixS::HandlerCore::MarketData::DefaultBaseFullOrderDepthBook::BaseBidMap
BaseBidMap;
60 typedef OnixS::HandlerCore::MarketData::FullOrderDepthBook<PriceLevel, Order, OrderId, Price, BaseFullOrderDepthBook>
OrderDepthBook;
72 using OrderBook::asks;
73 using OrderBook::bids;
74 using OrderBook::depth;
75 using OrderBook::empty;
82 size_t maxAggregatedPriceLevelsCount = (
size_t)-1,
83 const PoolManagerPtr& poolManager = PoolManagerPtr()
88 AskFullOrderDepthMap& askOrders();
89 const AskFullOrderDepthMap& askOrders()
const;
90 BidFullOrderDepthMap& bidOrders();
91 const BidFullOrderDepthMap& bidOrders()
const;
93 void remove(
const OrderId& orderId);
97 static void*
operator new (std::size_t);
98 static void operator delete (
void*);
100 static void*
operator new (std::size_t,
void*);
101 static void operator delete (
void*,
void*);
104 size_t doDepth()
const;
111 void checkAsksSanity()
const;
112 void checkBidsSanity()
const;
119 const size_t bookDepth_;
133 const size_t poolSize_;
134 std::vector<unsigned char> poolPtr_;
135 OnixS::FixedBlockAllocator allocator_;
140 ONIXS_HANDLER_NAMESPACE_END
143 namespace HandlerCore {
144 namespace MarketData {
150 return boost::hash<HANDLER_NAMESPACE::OrderId>()(value);
size_t hash_value(OrderBookInternal const &book)
UInt64 OrderId
Alias for OrderId type.
void addOrder(const Order &order, PriceLevel &level)
void checkSanity(const OrderBook &book)
checks whether the given book is properly built
OnixS::HandlerCore::MarketData::DefaultBaseFullOrderDepthBook::BaseAskMap BaseAskMap
Encapsulates price level concept.
UInt64 Quantity
Alias for Quantity type.
UInt32 OrderBookId
Alias for Security Id type.
PriceLevelCollections::Array PriceLevels
Sequence of price levels.
size_t getHash(const OnixS::SgxTitan::MarketData::Itch::OrderId &value)
OrderDepthBook::BidFullOrderDepthMap BidFullOrderDepthMap
const OrderId & getOrderId(const Order &order)
OrderDepthBook::AskFullOrderDepthMap AskFullOrderDepthMap
OrderDepthBook::PoolManager PoolManager
OnixS::HandlerCore::MarketData::FullOrderDepthBook< PriceLevel, Order, OrderId, Price, BaseFullOrderDepthBook > OrderDepthBook
OrderDepthBook::OrderIdMap OrderIdMap
OrderDepthBook::PoolManagerPtr PoolManagerPtr
void removeOrder(const Order &order, PriceLevel &level)
bool isOrderAffectsPriceLevel(const Order &order)
OnixS::HandlerCore::MarketData::DefaultBaseFullOrderDepthBook::BaseBidMap BaseBidMap
const Price & getPrice(const Order &order)