59 const std::unordered_map<
ParameterType, std::vector<std::string>>& source_names,
75 const std::unordered_set<ParamId>& source_pids,
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.
Block identifier with alias support.
Interface for managing dependencies between parameter blocks or parameters.
virtual ~IDependency()=default
Virtual destructor for proper polymorphic cleanup.
virtual void add_block_dependency(const BlockName &name, const std::unordered_map< ParameterType, std::vector< std::string > > &source_names, ParameterType dest, DepUpdateFunc recalculateFunc)=0
Adds a dependent block.
virtual void remove_dependency(const BlockName &name, ParameterType src)=0
Removes a dependency by name and parameter type.
virtual void add_param_dependency(const ParamId &pid, const std::unordered_set< ParamId > &source_pids, DepParamUpdateFunc recalculateFunc)=0
Adds a dependent parameter.
virtual void update_dependency(const BlockName &name, ParameterType src)=0
Updates a dependency by name and parameter type.
Composite identifier for a single parameter.