|
Flow 1.0.1
Flow project: Full implementation reference.
|
Go to the source code of this file.
Namespaces | |
| namespace | flow |
| Catch-all namespace for the Flow project: A collection of various production-quality modules written in modern C++17, originally by ygoldfel. | |
| namespace | flow::cfg |
| Flow module that facilitates configuring modules, such as applications and APIs, via statically and/or dynamically parsed sets of name/value pairs from config sources like files and command lines. | |
Macros | |
| #define | FLOW_CFG_OPT_CHECK_ASSERT(ARG_must_be_true) |
Convenience macro particularly useful in the final_validator_func() callback taken by various Config_manager APIs; checks the given condition; if false logs a FLOW_LOG_WARNING() containing the failed condition and executes outcome = flow::cfg::Final_validator_func::S_FAIL;; otherwise no-op. More... | |
Enumerations | |
| enum class | flow::cfg::Final_validator_outcome { flow::cfg::S_ACCEPT , flow::cfg::S_SKIP , flow::cfg::S_FAIL } |
| Result enumeration for a Final_validator_func::Type function which is used by a Config_manager user when parsing a config source (ex: file). More... | |
Functions | |
| template<typename... S_d_value_set> | |
| std::ostream & | flow::cfg::operator<< (std::ostream &os, const Config_manager< S_d_value_set... > &val) |
| Serializes (briefly) a Config_manager to a standard output stream. More... | |
| #define FLOW_CFG_OPT_CHECK_ASSERT | ( | ARG_must_be_true | ) |
Convenience macro particularly useful in the final_validator_func() callback taken by various Config_manager APIs; checks the given condition; if false logs a FLOW_LOG_WARNING() containing the failed condition and executes outcome = flow::cfg::Final_validator_func::S_FAIL;; otherwise no-op.
Note the context must be such that FLOW_LOG_WARNING() compiles and acts properly.
If auto outcome = flow::cfg::Final_validator_func::S_ACCEPT; precedes multiple invocations of this macro, then by the end of those invocations outcome == S_ACCEPT if and only if all checks passed. All errors will be printed if outcome != S_ACCEPT.
Informally: If you have a condition that would cause your final_validator_func() to return flow::cfg::Final_validator_outcome::S_SKIP, then it is probably best to check for this potential condition, and return flow::cfg::Final_validator_outcome::S_SKIP if it holds, before any further checks (FLOW_CFG_OPT_CHECK_ASSERT() calls).
| ARG_must_be_true | An expression convertible to bool that should evaluate to true to avoid WARNING and outcome = S_FAIL;. |
Definition at line 111 of file cfg_manager_fwd.hpp.