12#include "fastmm/core/msg_ring.hpp"
23struct StoreThreadOptions {
52 std::
size_t drain(
bool force_commit);
55 std::unique_ptr<
Backend> backend_;
58 std::atomic<
bool> stop_{
false};
59 std::atomic<std::uint64_t> records_{0};
60 std::atomic<std::uint64_t> batches_{0};
61 std::atomic<std::uint64_t> unknown_{0};
62 bool stopped_ =
false;
Storage backend interface: what a session's fills, orders, positions, PnL and kill events are handed ...
Definition backend.hpp:100
Definition store_thread.hpp:35
void start()
spawns the drain thread
std::size_t drain_once()
Single-threaded driving (tests): drains and commits everything the ring holds now.
StoreThread(MsgRing &ring, std::unique_ptr< Backend > backend, const StoreThreadOptions &opts={})
StoreThreadStats stats() const noexcept
Backend & backend() noexcept
Definition store_thread.hpp:42
StoreThread & operator=(const StoreThread &)=delete
void stop()
joins, drains what is left, commits
Definition backend.hpp:39
Definition store_thread.hpp:25
std::size_t max_batch
records per backend transaction
Definition store_thread.hpp:26
Definition store_thread.hpp:29
std::uint64_t records
Definition store_thread.hpp:30
std::uint64_t unknown
records of a type this build does not know (a newer writer)
Definition store_thread.hpp:32
std::uint64_t batches
Definition store_thread.hpp:31