26#ifndef MADS_DIRECTOR_CONFIG_HPP
27#define MADS_DIRECTOR_CONFIG_HPP
48std::optional<std::chrono::milliseconds>
parse_duration(
const std::string &text);
68 std::chrono::milliseconds
delay{0};
80 std::string *out_error);
154std::optional<DirectorConfig>
156 std::vector<std::string> *out_warnings =
nullptr,
ReadyKind
Discriminates the four ready = "..." probe kinds.
constexpr const char * kDefaultBrokerProbeUri
Default broker settings URI probed by a bare ready = "broker".
std::optional< std::chrono::milliseconds > parse_duration(const std::string &text)
Parses a duration string like "500ms", "2s", "1.5s", "3m" into a std::chrono::milliseconds value....
std::optional< ReadySpec > parse_ready_spec(const std::string &value, std::string *out_error)
Parses a raw ready string into a ReadySpec. Exposed standalone (rather than only reachable through lo...
std::optional< DirectorConfig > load_director_config(const std::string &path, std::string *out_error, std::vector< std::string > *out_warnings=nullptr, const DirectorLoadOptions &options={})
Loads, validates, expands and orders a director.toml file.
A fully parsed, validated, expanded director.toml. processes is already in a valid topological start ...
std::vector< ProcessConfig > processes
double sample_rate_seconds
std::optional< std::string > terminal
std::filesystem::path base_dir
Caller-supplied overrides applied while the file is expanded.
std::optional< int > base_instance_id
One process instance, after scale expansion and template substitution. This is what mads up actually ...
std::vector< std::string > after
std::optional< ReadySpec > ready
A parsed, validated ready = "..." value.
std::chrono::milliseconds delay