27 #ifndef GUM_PARTIAL_INSTANTIATION_REGISTER_4_MULTI_DIM_H 28 #define GUM_PARTIAL_INSTANTIATION_REGISTER_4_MULTI_DIM_H 40 template <
typename GUM_SCALAR >
41 class MultiDimImplementation;
64 template <
typename GUM_SCALAR >
99 void insert(
const std::string& instantiation_func_name,
100 const std::string& type_multidim,
115 void erase(
const std::string& instantiation_func_name,
116 const std::string& type_multidim);
131 bool exists(
const std::string& instantiation_func_name,
132 const std::string& type_multidim)
const;
151 const std::string& type_multidim)
const;
211 template <
typename GUM_SCALAR >
213 const std::string& instantiation_func_name,
214 const std::string& type_multidim,
~PartialInstantiationRegister4MultiDim()
Class destructor.
static PartialInstantiationRegister4MultiDim & Register()
A named constructor that constructs one and only one Register per data type.
Base class for discrete random variable.
MultiDimImplementation< GUM_SCALAR > *(* PartialInstantiationPtr)(const MultiDimImplementation< GUM_SCALAR > *, const HashTable< const DiscreteVariable *, Idx > &)
The type of functions used by the register.
HashTable< std::string, PartialInstantiationSet *> __set
A mapping from the types of MultiDimImplementations to partial instantiation operators.
void erase(const std::string &instantiation_func_name, const std::string &type_multidim)
Removes a given entry from the register.
bool exists(const std::string &instantiation_func_name, const std::string &type_multidim) const
Indicates whether a given entry exists in the register.
PartialInstantiationRegister4MultiDim()
Default constructor: creates an empty register.
gum is the global namespace for all aGrUM entities
The class for generic Hash Tables.
A container for registering partial instantiation functions on multiDimImplementations, i.e., functions assigning values to subsets of the variables of some tables.
void registerPartialInstantiation(const std::string &instantiation_func_name, const std::string &type_multidim, typename PartialInstantiationRegister4MultiDim< GUM_SCALAR >::PartialInstantiationPtr function)
A function to more easily register new instantiation functions in MultiDims.
void insert(const std::string &instantiation_func_name, const std::string &type_multidim, PartialInstantiationPtr newFunction)
Adds a new entry into the register.
<agrum/multidim/multiDimImplementation.h>
Implementation of PartialInstantiationRegister4MultiDim.
Class hash tables iterators.
HashTable< std::string, PartialInstantiationPtr > PartialInstantiationSet
The set of associations for a given partial instantiation type.