29 #ifndef GUM_PRM_OBJECT_H 30 #define GUM_PRM_OBJECT_H 34 #include <agrum/agrum.h> 86 return "PRMType::CLASS";
88 case prm_type::CLASS_ELT:
89 return "PRMType::CLASS_ELT";
92 return "PRMType::TYPE";
94 case prm_type::SYSTEM:
95 return "PRMType::SYSTEM";
97 case prm_type::INSTANCE:
98 return "PRMType::INSTANCE";
100 case prm_type::PRM_INTERFACE:
101 return "PRMType::PRM_INTERFACE";
157 const std::string&
name()
const;
163 void name(
const std::string& name);
215 template <
typename GUM_SCALAR >
216 class PRMClassElement;
217 template <
typename GUM_SCALAR >
219 template <
typename GUM_SCALAR >
221 template <
typename GUM_SCALAR >
223 template <
typename GUM_SCALAR >
225 template <
typename GUM_SCALAR >
227 template <
typename GUM_SCALAR >
229 template <
typename GUM_SCALAR >
231 template <
typename GUM_SCALAR >
233 template <
typename GUM_SCALAR >
239 #ifndef GUM_NO_INLINE 240 # include <agrum/PRM/elements/PRMObject_inl.h> PRMObject & operator=(const PRMObject &source)
Copy operator.
virtual PRMClassElement< GUM_SCALAR >::ClassElementType elt_type() const
See gum::PRMClassElement::elt_type().
HashTable< std::string, std::pair< bool, bool > > _IOFlags_
input / output flags, useful when inheriting or copying.
PRMObject(PRMObject &&source)
Move constructor.
bool operator!=(const PRMObject &obj) const
To PRMObject are equal if they have the same name (which is unique).
const std::string & name() const
Returns the name of this object.
PRMObject(const PRMObject &source)
Copy constructor.
INLINE void emplace(Args &&... args)
const Set< PRMSlotChain< GUM_SCALAR > *> & slotChains() const
Returns the set of PRMSlotChain<GUM_SCALAR> of this Class<GUM_SCALAR>.
static std::string enum2str(prm_type type)
Returns the string representation of a PRMObject.
virtual prm_type obj_type() const =0
Returns the type of this object.
virtual ~PRMObject()
Destructor.
const Sequence< PRMClassElement< GUM_SCALAR > *> & chain() const
Return the sequence representing the chain of elements in this PRMSlotChain.
bool operator==(const PRMObject &obj) const
To PRMObject are equal if they have the same name (which is unique).
virtual PRMClassElement< GUM_SCALAR >::ClassElementType elt_type() const
Implementation of the pure virtual method of PRMObject.
prm_type
Enumeration of the different types of objects handled by a PRM.
void name(const std::string &name)
Change the name of the PRM Object.
PRMObject & operator=(PRMObject &&source)
Move operator.
ParamScopeData(const std::string &s, const PRMReferenceSlot< GUM_SCALAR > &ref, Idx d)
virtual PRMClassElement< GUM_SCALAR >::ClassElementType elt_type() const =0
See gum::PRMClassElement::elt_type().
const Set< PRMReferenceSlot< GUM_SCALAR > *> & referenceSlots() const
Returns the set of PRMAggregate of this Class<GUM_SCALAR>.
static std::string LEFT_CAST()
Enumeration of the different types of objects handled by a PRM.
NodeProperty< std::vector< pair > *> _referingAttr_
The set of pair (instance, attribute) referring an attribute of this instance.
const Sequence< PRMInstance< GUM_SCALAR > *> & getArray(const std::string &name) const
Returns the sequence of instances of a given array.
PRMObject(const std::string &name)
Constructor.
static std::string RIGHT_CAST()
Enumeration of the different types of objects handled by a PRM.