34 #include <agrum/tools/core/hashTable.h> 35 #include <agrum/tools/core/sequence.h> 37 #include <agrum/PRM/elements/PRMAggregate.h> 38 #include <agrum/PRM/elements/PRMAttribute.h> 39 #include <agrum/PRM/elements/PRMClass.h> 40 #include <agrum/PRM/elements/PRMFuncAttribute.h> 41 #include <agrum/PRM/elements/PRMInstance.h> 42 #include <agrum/PRM/elements/PRMObject.h> 43 #include <agrum/PRM/elements/PRMReferenceSlot.h> 44 #include <agrum/PRM/elements/PRMSlotChain.h> 45 #include <agrum/PRM/elements/PRMType.h> 47 #include <agrum/PRM/elements/PRMSystem.h> 52 template <
typename GUM_SCALAR >
54 template <
typename GUM_SCALAR >
64 template <
typename GUM_SCALAR >
67 friend class PRMFactory< GUM_SCALAR >;
94 bool isType(
const std::string& name)
const;
100 bool isClass(
const std::string& name)
const;
114 bool isSystem(
const std::string& name)
const;
196 PRM(
const PRM< GUM_SCALAR >& source);
240 #ifndef GUM_NO_EXTERN_TEMPLATE_CLASS 241 extern template class PRM<
double >;
248 #include <agrum/PRM/PRM_tpl.h> PRMInterface< GUM_SCALAR > & getInterface(const std::string &name)
Returns a constant reference on a Class<GUM_SCALAR> given it's name.
const Set< PRMType *> & types() const
Returns the Set of all PRMType in this PRM.
void _addBuiltInTypes_()
Add the built-in types in the PRM.
const PRMType & type(const std::string &name) const
Returns a constant reference on a PRMType given it's name.
bool isClass(const std::string &name) const
PRM()
Default constructor.
INLINE void emplace(Args &&... args)
const Set< PRMSystem< GUM_SCALAR > *> & systems() const
Returns the Set of all Systems in this PRM.
HashTable< std::string, PRMSystem< GUM_SCALAR > *> _systemMap_
Mapping of all Systems given their name.
const PRMSystem< GUM_SCALAR > & getSystem(const std::string &name) const
Returns a constant reference on a PRMSystem<GUM_SCALAR> given it's name.
const Set< PRMInterface< GUM_SCALAR > *> & interfaces() const
Returns the Set of all Class<GUM_SCALAR> in this PRM.
HashTable< std::string, PRMType *> _typeMap_
Mapping of all PRMType given their name.
bool isType(const std::string &name) const
PRMType & type(const std::string &name)
Returns a constant reference on a PRMType given it's name.
bool isSystem(const std::string &name) const
PRMSystem< GUM_SCALAR > & getSystem(const std::string &name)
Returns a constant reference on a PRMSystem<GUM_SCALAR> given it's name.
ParamScopeData(const std::string &s, const PRMReferenceSlot< GUM_SCALAR > &ref, Idx d)
const PRMClass< GUM_SCALAR > & getClass(const std::string &name) const
Returns a constant reference on a Class<GUM_SCALAR> given it's name.
const PRMInterface< GUM_SCALAR > & getInterface(const std::string &name) const
Returns a constant reference on a Class<GUM_SCALAR> given it's name.
PRM(const PRM< GUM_SCALAR > &source)
Copy constructor.
Set< PRMSystem< GUM_SCALAR > *> _systems_
Set of all Systems in this PRM.
Set< PRMType *> _types_
Set of all PRMType in this PRM.
PRMClass< GUM_SCALAR > & getClass(const std::string &name)
Returns a constant reference on a Class<GUM_SCALAR> given it's name.
const Sequence< PRMInstance< GUM_SCALAR > *> & getArray(const std::string &name) const
Returns the sequence of instances of a given array.
PRM< GUM_SCALAR > & operator=(const PRM< GUM_SCALAR > &source)
Copy operator.
bool isInterface(const std::string &name) const