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;