6 #ifndef DYNAMIC_GRAPH_FACTORY_HH 7 #define DYNAMIC_GRAPH_FACTORY_HH 8 #include <dynamic-graph/dynamic-graph-api.h> 9 #include <dynamic-graph/exception-factory.h> 11 #include <boost/noncopyable.hpp> 12 #include <dynamic-graph/fwd.hh> 26 #define DYNAMICGRAPH_FACTORY_ENTITY_PLUGIN(CLASSTYPE, CLASSNAME) \ 27 const std::string CLASSTYPE::CLASS_NAME = CLASSNAME; \ 29 ::dynamicgraph::Entity *EntityMaker_##CLASSTYPE( \ 30 const std::string &objname) { \ 31 return new CLASSTYPE(objname); \ 33 ::dynamicgraph::EntityRegisterer reg_##CLASSTYPE(CLASSNAME, \ 34 &EntityMaker_##CLASSTYPE); \ 36 struct e_n_d__w_i_t_h__s_e_m_i_c_o_l_o_n 85 typedef Entity *(*EntityConstructor_ptr)(
const std::string &);
93 static void destroy();
107 void registerEntity(
const std::string &entname, EntityConstructor_ptr ent);
116 void deregisterEntity(
const std::string &entname);
136 Entity *newEntity(
const std::string &classname,
137 const std::string &objname)
const;
144 bool existEntity(
const std::string &name)
const;
151 void listEntities(std::vector<std::string> &list)
const;
165 typedef std::map<std::string, EntityConstructor_ptr> EntityMap;
196 const std::string entityName;
This class represents an entity, i.e. a generic computational unit that provides input and output sig...
Entity *(* EntityConstructor_ptr)(const std::string &)
Function pointer providing an entity instance from its name.
This class automatically register an Entity to the global factory at initialization and unregister it...
Provides a way to create Entity objects from their class name.