33 #include <agrum/PRM/PRM.h> 34 #include <agrum/PRM/PRMFactory.h> 35 #include <agrum/PRM/o3prm/O3NameSolver.h> 36 #include <agrum/PRM/o3prm/O3prm.h> 37 #include <agrum/PRM/o3prm/errors.h> 38 #include <agrum/tools/core/hashTable.h> 39 #include <agrum/tools/core/set.h> 41 #ifndef GUM_PRM_O3PRM_O3INTERFACE_FACTORY_H 42 # define GUM_PRM_O3PRM_O3INTERFACE_FACTORY_H 57 template <
typename GUM_SCALAR >
62 O3NameSolver< GUM_SCALAR >& solver,
63 ErrorsContainer& errors);
111 # include <agrum/PRM/o3prm/O3InterfaceFactory_tpl.h> 114 # ifndef GUM_NO_EXTERN_TEMPLATE_CLASS HashTable< std::string, O3Interface *> _interfaceMap_
std::vector< O3Interface *> _o3Interface_
O3InterfaceFactory< GUM_SCALAR > & operator=(O3InterfaceFactory< GUM_SCALAR > &&src)
bool _checkCyclicReference_(O3Interface &i, O3InterfaceElement &elt)
bool _checkO3Interfaces_()
ErrorsContainer * _errors_
INLINE void emplace(Args &&... args)
void _setO3InterfaceCreationOrder_()
HashTable< std::string, gum::NodeId > _nameMap_
O3InterfaceFactory(PRM< GUM_SCALAR > &prm, O3PRM &o3_prm, O3NameSolver< GUM_SCALAR > &solver, ErrorsContainer &errors)
O3InterfaceFactory< GUM_SCALAR > & operator=(const O3InterfaceFactory< GUM_SCALAR > &src)
bool _checkInterfaceElement_(O3Interface &i, O3InterfaceElement &elt)
HashTable< std::string, std::string > _eltName_
PRM< GUM_SCALAR > * _prm_
O3InterfaceFactory(O3InterfaceFactory< GUM_SCALAR > &&src)
O3NameSolver< GUM_SCALAR > * _solver_
bool _checkOverloadLegality_(O3Interface &i, O3InterfaceElement &elt)
Bulds gum::prm:PRMInterface from gum::prm::o3prm::O3Interface.
HashTable< NodeId, O3Interface *> _nodeMap_
O3InterfaceFactory(const O3InterfaceFactory< GUM_SCALAR > &src)
bool _checkAttributeOverloadLegality_(O3Interface &i, O3InterfaceElement &elt)
ParamScopeData(const std::string &s, const PRMReferenceSlot< GUM_SCALAR > &ref, Idx d)
bool _addInterface2Dag_()
bool _checkReferenceOverloadLegality_(O3Interface &i, O3InterfaceElement &elt)