100 int64_t maxChunksCountInUse_ = 0;
113 friend struct OrderBookPoolHelper;
137 std::string toString()
const;
141 void toString(std::string&)
const;
169 namespace Implementation
171 class InstrumentRepository;
199 std::swap(storage_, other.storage_);
200 std::swap(pos_, other.pos_);
203 ONIXS_B3_UMDF_MD_API reference operator*()
const noexcept;
204 ONIXS_B3_UMDF_MD_API pointer operator->()
const noexcept;
205 ONIXS_B3_UMDF_MD_API reference operator[] (difference_type n)
const noexcept;
210 OrdersIterator operator+= (difference_type v) noexcept {
return {storage_, pos_ += v};}
215 OrdersIterator operator-= (difference_type v) noexcept {
return {storage_, pos_ -= v};}
222 return l.pos_ - r.pos_;
234 const Implementation::OrderStorage* storage_{};
254 return {storage_, begin_};
259 return {storage_, end_};
264 return begin_ == end_;
269 return static_cast<size_t>(std::distance(begin_, end_));
274 assert(idx < size());
275 return begin().operator[](idx);
289 const Implementation::OrderStorage* storage_;
305 bool empty()
const noexcept;
320 std::string toString()
const;
323 void toString(std::string&)
const;
326 std::string toShortString()
const;
329 void toShortString(std::string&)
const;
332 std::string toFormattedString()
const;
335 void toFormattedString (std::string&)
const;
343 OrderBook(
size_t depth,
const Implementation::InstrumentRepository* instrumentRepository, InstrumentId
id);
351 const Implementation::OrderStorage* getStorage() const noexcept;
358 inline
Order::
Order(OrderId orderId, Price price, Quantity quantity) ONIXS_B3_UMDF_MD_NOTHROW
361 , quantity_(quantity)
ptrdiff_t difference_type
Settings for the OrderBookPool.
bool empty() const noexcept
bool marketOrder() const
Indicates whether the order is the market order.
#define ONIXS_B3_UMDF_MD_NOTHROW
ONIXS_B3_UMDF_MD_API std::ostream & operator<<(std::ostream &stream, const LoggerSettings &settings)
std::string toString() const
Returns string representation of the instance.
bool operator!=(const OrdersIterator &rhs) const noexcept
ONIXS_B3_UMDF_MD_API void validate(const OrderBook &)
For testing only.
void swap(OrdersIterator &other) noexcept
Int64 Quantity
Alias for Quantity type.
size_t chunksAmount
Amount of memory chunks.
Messaging::PriceOptional Price
Alias for Price type (4 decimal places)
Mantissa mantissa() const
STL-like iterator over OrderBook levels.
bool operator==(const OrdersIterator &rhs) const noexcept
std::random_access_iterator_tag iterator_category
const Order & operator[](size_t idx) const noexcept
const BookOrderId * OrdersIterator
size_t chunkLength
Length of a chunk.
UInt32 SeqNum
Sequence number inside the given channel.
const Implementation::InstrumentRepository *const instrumentRepository_
const Statistic & statistic() const noexcept
OrdersIterator begin() const noexcept
OrdersIterator operator--(int) noexcept
Price price() const
Price.
friend OrdersIterator::difference_type operator-(const OrdersIterator &l, const OrdersIterator &r) noexcept
OrderId orderId() const
Order Id.
A nullable real number with a constant exponent.
OrdersIterator cbegin() const noexcept
#define ONIXS_B3_UMDF_MD_ALIGNAS(X)
OrdersIterator end() const noexcept
GrowthPolicy growthPolicy
OrdersIterator cend() const noexcept
OrdersIterator & operator++() noexcept
Timestamp operator-(const Timestamp ×tamp, const TimeSpan &timeSpan)
Subtracts time interval from given time point.
InstrumentId instrumentId() const
Instrument Id.
Quantity quantity() const
Quantity.
OrdersIterator operator++(int) noexcept
UInt64 OrderId
Alias for Order Id type.
UInt32 RptSeq
Sequence number per instrument update.
OrdersIterator & operator--() noexcept
A shared memory pool for building order books.
bool operator==(const TimeSpan &left, const TimeSpan &right)
Compares with other instance for equality.
UInt64 InstrumentId
Alias for Instrument Id type.
Timestamp operator+(const Timestamp ×tamp, const TimeSpan &timeSpan)
Adds time interval to given time point.
OrdersIterator & operator=(const OrdersIterator &r) noexcept
bool preferHugePage
Use Huge pages for chunk allocation.
size_t size() const noexcept