FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
l2_book.hpp File Reference

L2Book<kMaxDepth>: price-aggregated book for crypto feeds (5.4). More...

#include "fastmm/core/book/book_view.hpp"
#include "fastmm/core/config_macros.hpp"
#include "fastmm/core/containers/static_vector.hpp"
#include "fastmm/core/messages.hpp"
#include <cstddef>
#include <cstdint>
#include <span>
#include <type_traits>

Go to the source code of this file.

Classes

class  fastmm::L2Book< kMaxDepth >
 

Namespaces

namespace  fastmm
 

Detailed Description

L2Book<kMaxDepth>: price-aggregated book for crypto feeds (5.4).

Each side is a sorted StaticVector<Level> with the BEST level at back(): top-of-book is O(1), and the common near-top insert/erase only memmoves a handful of 16-byte levels. Bids are stored ascending by price, asks descending, so both sides share one code path keyed on "distance from best". Lookups scan the top 16 linearly and bisect the rest.

Depth is capped at kMaxDepth: levels worse than the worst stored one are dropped and the side is flagged truncated() until the next snapshot (crypto venues resend snapshots on resync; we deliberately do not try to repair). Crossed books are tolerated (Binance can cross for ~100 ms between updates); the engine polls crossed_for(now) against a grace.