1#ifndef IBLOCKCOMPOSER_H
2#define IBLOCKCOMPOSER_H
80 virtual void update(
const std::string&) = 0;
Defines classes used to store parameters and to build derived/dependent parameter blocks.
std::function< void(const BlockSrc &, std::shared_ptr< DependentBlock >)> DepUpdateFunc
Function type used to recompute a DependentBlock from its sources.
Defines parameters whose values are lazily computed from other parameters.
std::function< void(const ParamSrc &, std::shared_ptr< DependentParameter >)> DepParamUpdateFunc
Function signature used to recompute a DependentParameter.
Defines the Parameter class used to store individual physical/model parameters.
Abstract interface for composing dependent blocks and parameters.
virtual void compose_parameter(const ParamId &, const std::unordered_set< ParamId > &, const DepParamUpdateFunc &)=0
Compose (create/register) a dependent parameter.
virtual void compose_block(const std::string &, const std::unordered_map< ParameterType, std::vector< std::string > > &, const DepUpdateFunc &)=0
Compose (create/register) a dependent block.
bool has_composed_block(const std::string &block_name) const
Returns whether a block has already been composed by this composer instance.
virtual void remove_all_composed_blocks()=0
Remove all blocks recorded as composed by this composer family.
virtual void update(const std::string &)=0
Manually trigger an update for a previously composed block.
virtual ~IBlockComposer()=default
virtual void remove_block(const std::string &)=0
Remove a previously composed dependent block.
std::unordered_set< std::string > composed_blocks
Registry of blocks composed through this composer instance.
Composite identifier for a single parameter.