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

#include <fastmm/strategies/registry.hpp>

Public Types

using Factory = std::unique_ptr< IEngineRunner >(*)(TransportKind, RunnerDeps &)
 
using PublisherFactory = std::unique_ptr< ParamPublisher >(*)(ParamSink, const ParamMap &)
 Builds a publisher for this strategy's parameters over sink, its copy seeded with the values the session configured the strategy with, so fastmm-live can accept parameter changes while it runs (src/live/control_socket.cpp).
 

Public Member Functions

bool supports (TransportKind k) const noexcept
 

Public Attributes

std::string_view name
 must outlive the registry (S::name() returns a literal)
 
const ParamSchema * schema = nullptr
 
std::array< Factory, kTransportKinds > factories {}
 indexed by TransportKind
 
PublisherFactory publisher = nullptr
 

Member Typedef Documentation

◆ Factory

using fastmm::StrategyEntry::Factory = std::unique_ptr<IEngineRunner> (*)(TransportKind, RunnerDeps&)

◆ PublisherFactory

Builds a publisher for this strategy's parameters over sink, its copy seeded with the values the session configured the strategy with, so fastmm-live can accept parameter changes while it runs (src/live/control_socket.cpp).

Null when the parameters are not a FASTMM_PARAMS struct (a hot strategy builds its schema at run time and brings its own publisher). Throws std::invalid_argument on a value the schema refuses (startup only).

Member Function Documentation

◆ supports()

bool fastmm::StrategyEntry::supports ( TransportKind  k) const
inlinenoexcept

Member Data Documentation

◆ name

std::string_view fastmm::StrategyEntry::name

must outlive the registry (S::name() returns a literal)

◆ schema

const ParamSchema* fastmm::StrategyEntry::schema = nullptr

◆ factories

std::array<Factory, kTransportKinds> fastmm::StrategyEntry::factories {}

indexed by TransportKind

◆ publisher

PublisherFactory fastmm::StrategyEntry::publisher = nullptr