Slick OrderBook 1.1.0
High-Performance C++23 OrderBook Library
Loading...
Searching...
No Matches
slick::orderbook::detail::OrderMap Class Reference

Hash table for fast OrderId -> Order* lookup Uses std::unordered_map for simplicity and performance Provides O(1) average-case lookup, insertion, and deletion. More...

#include <order_map.hpp>

Collaboration diagram for slick::orderbook::detail::OrderMap:

Public Types

using MapType = std::unordered_map< OrderId, Order * >
 
using iterator = MapType::iterator
 
using const_iterator = MapType::const_iterator
 

Public Member Functions

 OrderMap (std::size_t initial_capacity=1024)
 Constructor with initial capacity.
 
bool insert (Order *order) noexcept
 Insert order into map.
 
bool erase (OrderId order_id) noexcept
 Remove order from map.
 
Order * find (OrderId order_id) noexcept
 Find order by OrderId.
 
const Order * find (OrderId order_id) const noexcept
 
bool contains (OrderId order_id) const noexcept
 Check if order exists.
 
std::size_t size () const noexcept
 Get number of orders in map.
 
bool empty () const noexcept
 Check if map is empty.
 
void reserve (std::size_t capacity)
 Reserve capacity for orders.
 
void clear () noexcept
 Clear all orders.
 
iterator begin () noexcept
 Iterators.
 
iterator end () noexcept
 
const_iterator begin () const noexcept
 
const_iterator end () const noexcept
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 

Detailed Description

Hash table for fast OrderId -> Order* lookup Uses std::unordered_map for simplicity and performance Provides O(1) average-case lookup, insertion, and deletion.

Definition at line 16 of file order_map.hpp.

Member Typedef Documentation

◆ const_iterator

using slick::orderbook::detail::OrderMap::const_iterator = MapType::const_iterator

Definition at line 20 of file order_map.hpp.

◆ iterator

Definition at line 19 of file order_map.hpp.

◆ MapType

Definition at line 18 of file order_map.hpp.

Constructor & Destructor Documentation

◆ OrderMap()

slick::orderbook::detail::OrderMap::OrderMap ( std::size_t  initial_capacity = 1024)
inlineexplicit

Constructor with initial capacity.

Definition at line 23 of file order_map.hpp.

Member Function Documentation

◆ begin() [1/2]

const_iterator slick::orderbook::detail::OrderMap::begin ( ) const
inlinenoexcept

Definition at line 85 of file order_map.hpp.

◆ begin() [2/2]

iterator slick::orderbook::detail::OrderMap::begin ( )
inlinenoexcept

Iterators.

Definition at line 83 of file order_map.hpp.

◆ cbegin()

const_iterator slick::orderbook::detail::OrderMap::cbegin ( ) const
inlinenoexcept

Definition at line 87 of file order_map.hpp.

◆ cend()

const_iterator slick::orderbook::detail::OrderMap::cend ( ) const
inlinenoexcept

Definition at line 88 of file order_map.hpp.

◆ clear()

void slick::orderbook::detail::OrderMap::clear ( )
inlinenoexcept

Clear all orders.

Definition at line 78 of file order_map.hpp.

◆ contains()

bool slick::orderbook::detail::OrderMap::contains ( OrderId  order_id) const
inlinenoexcept

Check if order exists.

Definition at line 58 of file order_map.hpp.

Referenced by slick::orderbook::OrderBookL3::addOrder().

◆ empty()

bool slick::orderbook::detail::OrderMap::empty ( ) const
inlinenoexcept

Check if map is empty.

Definition at line 68 of file order_map.hpp.

◆ end() [1/2]

const_iterator slick::orderbook::detail::OrderMap::end ( ) const
inlinenoexcept

Definition at line 86 of file order_map.hpp.

◆ end() [2/2]

iterator slick::orderbook::detail::OrderMap::end ( )
inlinenoexcept

Definition at line 84 of file order_map.hpp.

◆ erase()

bool slick::orderbook::detail::OrderMap::erase ( OrderId  order_id)
inlinenoexcept

Remove order from map.

Parameters
order_idOrderId to remove
Returns
true if order was found and removed

Definition at line 40 of file order_map.hpp.

Referenced by slick::orderbook::OrderBookL3::deleteOrder().

◆ find() [1/2]

const Order * slick::orderbook::detail::OrderMap::find ( OrderId  order_id) const
inlinenoexcept

Definition at line 52 of file order_map.hpp.

◆ find() [2/2]

Order * slick::orderbook::detail::OrderMap::find ( OrderId  order_id)
inlinenoexcept

Find order by OrderId.

Parameters
order_idOrderId to find
Returns
Pointer to order, or nullptr if not found

Definition at line 47 of file order_map.hpp.

Referenced by slick::orderbook::OrderBookL3::addOrModifyOrder(), slick::orderbook::OrderBookL3::deleteOrder(), slick::orderbook::OrderBookL3::executeOrder(), and slick::orderbook::OrderBookL3::modifyOrder().

◆ insert()

bool slick::orderbook::detail::OrderMap::insert ( Order *  order)
inlinenoexcept

Insert order into map.

Parameters
orderPointer to order (must not be null)
Returns
true if insertion succeeded, false if OrderId already exists

Definition at line 30 of file order_map.hpp.

References SLICK_ASSERT.

Referenced by slick::orderbook::OrderBookL3::addOrModifyOrder().

◆ reserve()

void slick::orderbook::detail::OrderMap::reserve ( std::size_t  capacity)
inline

Reserve capacity for orders.

Definition at line 73 of file order_map.hpp.

◆ size()

std::size_t slick::orderbook::detail::OrderMap::size ( ) const
inlinenoexcept

Get number of orders in map.

Definition at line 63 of file order_map.hpp.


The documentation for this class was generated from the following file: