User-level class for running a sequence of algorithms.
The Start
, Run
, and Stop
methods will sequentially call the corresponding algorithms' methods, in the order the algorithms were added to the sequence by AlgorithmSequence::Add
.
Definition at line 11 of file AlgorithmSequence.h.
|
void | Start (hipo::banklist &banks) override |
| Initialize this algorithm before any events are processed, with the intent to process banks
|
|
void | Run (hipo::banklist &banks) const override |
| Run this algorithm for an event.
|
|
void | Stop () override |
| Finalize this algorithm after all events are processed.
|
|
void | Add (std::string const &class_name, std::string const &instance_name="") |
|
template<class ALGORITHM > |
void | Add (std::string_view instance_name="") |
|
void | Add (algo_t &&algo) |
|
template<class ALGORITHM > |
ALGORITHM * | Get (std::string const &instance_name) |
|
template<typename OPTION_TYPE > |
void | SetOption (std::string const &algo_name, std::string const &key, const OPTION_TYPE val) |
|
void | SetName (std::string_view name) |
|
void | PrintSequence (Logger::Level level=Logger::info) const |
|
void | SetConfigFileForEachAlgorithm (std::string const &name) |
| Set a custom configuration file for each algorithm in the sequence.
|
|
void | SetConfigDirectoryForEachAlgorithm (std::string const &name) |
| Set a custom configuration file directory for each algorithm in the sequence.
|
|
void | ForEachAlgorithm (std::function< void(algo_t &)> func) |
| Call a function for each algorithm in the sequence.
|
|
| Algorithm (std::string_view name) |
|
void | Start () |
| Initialize this algorithm before any events are processed, with the intent to process bank rows rather than full banks;.
|
|
template<typename OPTION_TYPE > |
OPTION_TYPE | SetOption (std::string const &key, const OPTION_TYPE val) |
|
template<typename OPTION_TYPE > |
OPTION_TYPE | GetOptionScalar (std::string const &key, YAMLReader::node_path_t node_path={}) const |
|
template<typename OPTION_TYPE > |
std::vector< OPTION_TYPE > | GetOptionVector (std::string const &key, YAMLReader::node_path_t node_path={}) const |
|
template<typename OPTION_TYPE > |
std::set< OPTION_TYPE > | GetOptionSet (std::string const &key, YAMLReader::node_path_t node_path={}) const |
|
void | SetName (std::string_view name) |
|
std::unique_ptr< YAMLReader > const & | GetConfig () const |
|
void | SetConfig (std::unique_ptr< YAMLReader > &&yaml_config) |
|
void | SetConfigFile (std::string const &name) |
|
void | SetConfigDirectory (std::string const &name) |
|
| Object (std::string_view name="", Logger::Level lev=Logger::DEFAULT_LEVEL) |
|
std::unique_ptr< Logger > & | Log () |
|
void | SetName (std::string_view name) |
|
std::string | GetName () const |
|
void | SetLogLevel (std::string_view lev) |
|
void | SetLogLevel (Logger::Level const lev) |
|
std::unique_ptr< Logger > & | GetLog () |
|
|
void | ParseYAMLConfig () |
| Parse YAML configuration files. Sets m_yaml_config .
|
|
hipo::bank & | GetBank (hipo::banklist &banks, hipo::banklist::size_type const idx, std::string const &expected_bank_name="") const noexcept(false) |
|
hipo::banklist::size_type | GetBankIndex (hipo::banklist &banks, std::string const &bank_name) const noexcept(false) |
|
hipo::schema | CreateBank (hipo::banklist &banks, hipo::banklist::size_type &bank_idx, std::string const &bank_name, std::vector< std::string > schema_def, int group_id, int item_id) const noexcept(false) |
|
void | ShowBanks (hipo::banklist &banks, std::string_view message="", Logger::Level const level=Logger::trace) const |
|
void | ShowBank (hipo::bank &bank, std::string_view message="", Logger::Level const level=Logger::trace) const |
|
template<typename OPTION_TYPE > |
std::optional< OPTION_TYPE > | GetCachedOption (std::string const &key) const |
|
std::string | m_class_name |
| Class name of this algorithm.
|
|
bool | m_rows_only |
| If true, algorithm can only operate on bank rows; Algorithm::GetBank , and therefore Algorithm::Run , cannot be called.
|
|
std::string | m_default_config_file |
| Default configuration file name.
|
|
std::string | o_user_config_file |
|
std::string | o_user_config_dir |
|
std::mutex | m_mutex |
| A mutex for this algorithm.
|
|
std::string | m_name |
| The name of this object.
|
|
std::unique_ptr< Logger > | m_log |
| Logger instance for this object
|
|