16 #ifndef CYBER_CLASS_LOADER_UTILITY_CLASS_FACTORY_H_ 17 #define CYBER_CLASS_LOADER_UTILITY_CLASS_FACTORY_H_ 25 namespace class_loader {
34 const std::string& base_class_name);
54 template <
typename Base>
58 const std::string& base_class_name)
61 virtual Base* CreateObj()
const = 0;
69 template <
typename ClassObject,
typename Base>
73 const std::string& base_class_name)
84 #endif // CYBER_CLASS_LOADER_UTILITY_CLASS_FACTORY_H_
std::vector< ClassLoader * > relative_class_loaders_
Definition: class_factory.h:48
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
void RemoveOwnedClassLoader(const ClassLoader *loader)
std::vector< ClassLoader * > GetRelativeClassLoaders()
const std::string GetBaseClassName() const
Definition: class_factory.h:55
void SetRelativeLibraryPath(const std::string &library_path)
Definition: class_factory.h:70
void AddOwnedClassLoader(ClassLoader *loader)
Definition: class_factory.h:31
std::string relative_library_path_
Definition: class_factory.h:49
AbstractClassFactory(const std::string &class_name, const std::string &base_class_name)
Definition: class_factory.h:57
Base * CreateObj() const
Definition: class_factory.h:76
bool IsOwnedBy(const ClassLoader *loader)
std::string class_name_
Definition: class_factory.h:51
ClassFactory(const std::string &class_name, const std::string &base_class_name)
Definition: class_factory.h:72
std::string base_class_name_
Definition: class_factory.h:50
const std::string GetRelativeLibraryPath() const
virtual ~AbstractClassFactoryBase()
AbstractClassFactoryBase(const std::string &class_name, const std::string &base_class_name)
const std::string GetClassName() const
Definition: class_loader.h:35