#include <fastmm/live/session.hpp>
|
| 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).
|
| |
◆ config_path
| std::string fastmm::live::LiveOptions::config_path |
◆ duration_ns
| std::int64_t fastmm::live::LiveOptions::duration_ns = 0 |
◆ 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:
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).