FastMM documentation
FastMM C++ API 0.6.0
Public headers, tier 1 and tier 2
Loading...
Searching...
No Matches
fastmm::live::LiveOptions Struct Reference

#include <fastmm/live/session.hpp>

Public Attributes

std::string config_path
 
std::int64_t duration_ns = 0
 0 = until SIGINT/SIGTERM
 
bool dry_run = false
 
std::string record_raw_dir
 
std::string journal_path
 overrides [engine] journal_dir
 
bool no_journal = false
 
std::string status_path
 overrides the default /dev/shm/fastmm-<engine>.status
 
bool no_status = false
 
std::string control_path
 Control socket (live/control_socket.hpp); empty takes <journal_dir>/<engine name>.ctl.
 
bool no_control = false
 
bool clear_kill = false
 Removes the durable kill state before starting: clears a latched max-loss trip and arms the whole [risk] max_loss budget again ([engine] kill_file).
 
bool standby = false
 Waits for the instance lock (live/instance_lock.hpp) instead of refusing to start while another process holds it; [engine] instance_lock is implied.
 
bool takeover = false
 standby, and once ready send handoff to the control socket of the session holding the lock; give up after [engine] handoff_timeout_ms without the lock (kExitLocked).
 
std::string program = "fastmm-live"
 prefix of error messages (log lines keep fastmm-live:)
 
const LiveStrategy * strategy = nullptr
 nullptr: [strategy] name from the registry
 
std::function< std::string()> watchdog
 Called by the control thread every 50 ms; must not block.
 
bool confine_other_threads
 Before the session starts its threads, set every thread of the process to the CPUs not listed in [engine] cpu and net_cpus (confine_threads, live/thread_affinity.hpp).
 
std::string gateway_path
 (live/gateway.hpp): its instrument table, its rings, no venue keys in this process, and no cancel_all on shutdown (the gateway cancels when the attachment closes).
 

Member Data Documentation

◆ config_path

std::string fastmm::live::LiveOptions::config_path

◆ duration_ns

std::int64_t fastmm::live::LiveOptions::duration_ns = 0

0 = until SIGINT/SIGTERM

◆ dry_run

bool fastmm::live::LiveOptions::dry_run = false

◆ record_raw_dir

std::string fastmm::live::LiveOptions::record_raw_dir

◆ journal_path

std::string fastmm::live::LiveOptions::journal_path

overrides [engine] journal_dir

◆ no_journal

bool fastmm::live::LiveOptions::no_journal = false

◆ status_path

std::string fastmm::live::LiveOptions::status_path

overrides the default /dev/shm/fastmm-<engine>.status

◆ no_status

bool fastmm::live::LiveOptions::no_status = false

◆ control_path

std::string fastmm::live::LiveOptions::control_path

Control socket (live/control_socket.hpp); empty takes <journal_dir>/<engine name>.ctl.

◆ no_control

bool fastmm::live::LiveOptions::no_control = false

◆ clear_kill

bool fastmm::live::LiveOptions::clear_kill = false

Removes the durable kill state before starting: clears a latched max-loss trip and arms the whole [risk] max_loss budget again ([engine] kill_file).

◆ standby

bool fastmm::live::LiveOptions::standby = false

Waits for the instance lock (live/instance_lock.hpp) instead of refusing to start while another process holds it; [engine] instance_lock is implied.

Warm when every trading venue can hold its private channels back (Venue::defer_private) and replays its executions before quoting, the session is split-threaded and not attached to a gateway: market data, books and the strategy run, orders are refused until the first reconciliation, and the kill file, the strategy state, the store, the status file, the control socket and the private channels wait for the lock. Otherwise cold: the reference data and account fees are loaded (attached: nothing), and everything else waits for the lock.

◆ takeover

bool fastmm::live::LiveOptions::takeover = false

standby, and once ready send handoff to the control socket of the session holding the lock; give up after [engine] handoff_timeout_ms without the lock (kExitLocked).

◆ program

std::string fastmm::live::LiveOptions::program = "fastmm-live"

prefix of error messages (log lines keep fastmm-live:)

◆ strategy

const LiveStrategy* fastmm::live::LiveOptions::strategy = nullptr

nullptr: [strategy] name from the registry

◆ watchdog

std::function<std::string()> fastmm::live::LiveOptions::watchdog

Called by the control thread every 50 ms; must not block.

A non-empty result stops the session like SIGTERM (kill switch, cancel_all) with kExitSlowTier and is logged as the cause.

◆ confine_other_threads

bool fastmm::live::LiveOptions::confine_other_threads
Initial value:
=
false

Before the session starts its threads, set every thread of the process to the CPUs not listed in [engine] cpu and net_cpus (confine_threads, live/thread_affinity.hpp).

Attach to the fastmm-gateway listening here instead of connecting to the venues

◆ gateway_path

std::string fastmm::live::LiveOptions::gateway_path

(live/gateway.hpp): its instrument table, its rings, no venue keys in this process, and no cancel_all on shutdown (the gateway cancels when the attachment closes).