6 #ifndef DYNAMIC_GRAPH_FACTORY_HH 7 #define DYNAMIC_GRAPH_FACTORY_HH 11 #include <boost/noncopyable.hpp> 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;
static FactoryStorage * instance_
to the unique object of the class
This class represents an entity, i.e. a generic computational unit that provides input and output sig...
const std::string entityName
Name of the entity registered when the instance has been initialized.
Entity *(* EntityConstructor_ptr)(const std::string &)
Function pointer providing an entity instance from its name.
std::map< std::string, EntityConstructor_ptr > EntityMap
Entity map type.
EntityMap entityMap
The entity map storing information about how to instantiate an Entity.
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.