BookUpdateEvent
BookUpdateEvent
represents a snapshot or delta update to the order book, encapsulated in a pooled, memory-resource-aware structure for zero-allocation fan-out.
struct BookUpdateEvent : public pool::PoolableBase<BookUpdateEvent> {
using Listener = IMarketDataSubscriber;
BookUpdate update;
uint64_t tickSequence = 0;
BookUpdateEvent(std::pmr::memory_resource* res);
void clear();
};
Purpose
- Deliver normalized order book changes with minimal latency and no heap allocations.
Responsibilities
Aspect | Details |
---|---|
Memory | Constructed with std::pmr::memory_resource for scoped allocation. |
Pooling | Inherits from PoolableBase for reuse via pool::Handle<T> . |
Payload | Holds a BookUpdate with bid/ask vectors allocated from the PMR. |
Sequencing | tickSequence ensures ordered processing across consumers. |
Subscription | Declares IMarketDataSubscriber as the receiver interface. |
Notes
clear()
resets bid/ask containers in-place without releasing memory.- Intended for high-frequency delivery over
BookUpdateBus
. - Construction asserts non-null memory resource to enforce deterministic allocation control.
- Immutable after dispatch; reused through pooled lifecycle.