30 #ifndef GUM_IPRM_FACTORY_H 31 #define GUM_IPRM_FACTORY_H 70 virtual void pushPackage(
const std::string& name) = 0;
72 virtual void addImport(
const std::string& name) = 0;
74 std::string super =
"") = 0;
75 virtual void addLabel(
const std::string& l, std::string extends =
"") = 0;
78 virtual void addTick(
double tick) = 0;
81 addRangeType(
const std::string& name,
long minVal,
long maxVal) = 0;
83 const std::string& extends =
"",
85 bool delayInheritance =
false) = 0;
87 virtual void endClass(
bool checkImplementations =
true) = 0;
89 const std::string& extends =
"",
90 bool delayInheritance =
false) = 0;
93 const std::string& name) = 0;
97 const std::string& name,
98 bool scalar_attr =
false) = 0;
100 virtual void addParent(
const std::string& name) = 0;
104 const std::vector< float >& values) = 0;
105 virtual void setCPFByRule(
const std::vector< std::string >& labels,
106 const std::vector< std::string >& values) = 0;
111 const std::string& name,
114 const std::string& agg_type,
115 const std::vector< std::string >& chains,
116 const std::vector< std::string >& params,
117 std::string type =
"") = 0;
119 const std::vector< std::string >& chains,
120 const std::vector< float >& numbers,
122 const std::vector< std::string >& label) = 0;
124 const std::string& name,
126 virtual void startSystem(
const std::string& name) = 0;
129 const std::string& name) = 0;
131 const std::string& name,
134 addArray(
const std::string& type,
const std::string& name,
Size size) = 0;
135 virtual void incArray(
const std::string& l_i,
const std::string& r_i) = 0;
137 const std::string& left_reference,
138 const std::string& right_instance) = 0;
140 const std::string& r_i) = 0;
virtual void setCPFByFloatRule(const std::vector< std::string > &labels, const std::vector< float > &values)=0
virtual void addAttribute(const std::string &type, const std::string &name)=0
virtual void endInterface()=0
virtual void startAttribute(const std::string &type, const std::string &name, bool scalar_attr=false)=0
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual void addInstance(const std::string &type, const std::string &name)=0
virtual void addTick(double tick)=0
virtual void setRawCPFByColumns(const std::vector< std::string > &array)=0
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual void addNoisyOrCompound(const std::string &name, const std::vector< std::string > &chains, const std::vector< float > &numbers, float leak, const std::vector< std::string > &label)=0
virtual void addParameter(const std::string &type, const std::string &name, double value)=0
virtual PRMObject::prm_type currentType() const =0
virtual void addReferenceSlot(const std::string &type, const std::string &name, bool isArray)=0
virtual void endDiscretizedType()=0
virtual void endClass(bool checkImplementations=true)=0
prm_type
Enumeration of the different types of objects handled by a PRM.
virtual void endAttribute()=0
virtual PRMObject * closeCurrent()=0
virtual void startClass(const std::string &c, const std::string &extends="", const Set< std::string > *implements=nullptr, bool delayInheritance=false)=0
virtual std::string currentPackage() const =0
virtual void setReferenceSlot(const std::string &left_instance, const std::string &left_reference, const std::string &right_instance)=0
virtual void pushPackage(const std::string &name)=0
virtual void startInterface(const std::string &i, const std::string &extends="", bool delayInheritance=false)=0
virtual void addRangeType(const std::string &name, long minVal, long maxVal)=0
virtual void continueClass(const std::string &c)=0
virtual bool isClassOrInterface(const std::string &type) const =0
virtual void setCPFByRule(const std::vector< std::string > &labels, const std::vector< std::string > &values)=0
virtual void addAggregator(const std::string &name, const std::string &agg_type, const std::vector< std::string > &chains, const std::vector< std::string > ¶ms, std::string type="")=0
virtual void setRawCPFByFloatLines(const std::vector< float > &array)=0
Abstract base class for any element defined in a PRM.
virtual std::string popPackage()=0
virtual void startDiscretizedType(const std::string &name)=0
virtual void continueInterface(const std::string &name)=0
virtual void startDiscreteType(const std::string &name, std::string super="")=0
virtual void setRawCPFByLines(const std::vector< std::string > &array)=0
virtual void addLabel(const std::string &l, std::string extends="")=0
virtual void addArray(const std::string &type, const std::string &name, Size size)=0
virtual void incArray(const std::string &l_i, const std::string &r_i)=0
virtual void endDiscreteType()=0
virtual void endSystem()=0
virtual void addImport(const std::string &name)=0
virtual void setRawCPFByFloatColumns(const std::vector< float > &array)=0
virtual void startSystem(const std::string &name)=0
std::size_t Size
In aGrUM, hashed values are unsigned long int.
virtual void continueAttribute(const std::string &name)=0
virtual bool isArrayInCurrentSystem(const std::string &name) const =0
virtual PRMObject * getCurrent()=0
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual void addParent(const std::string &name)=0
non-template interface-like parent for every PRM Factory