16#ifndef CYBER_CLASS_LOADER_UTILITY_CLASS_FACTORY_H_
17#define CYBER_CLASS_LOADER_UTILITY_CLASS_FACTORY_H_
25namespace class_loader {
34 const std::string& base_class_name);
54template <
typename Base>
58 const std::string& base_class_name)
69template <
typename ClassObject,
typename Base>
73 const std::string& base_class_name)
for library load,createclass object
std::string relative_library_path_
virtual ~AbstractClassFactoryBase()
const std::string GetRelativeLibraryPath() const
std::vector< ClassLoader * > GetRelativeClassLoaders()
const std::string GetClassName() const
void SetRelativeLibraryPath(const std::string &library_path)
void AddOwnedClassLoader(ClassLoader *loader)
std::vector< ClassLoader * > relative_class_loaders_
std::string base_class_name_
void RemoveOwnedClassLoader(const ClassLoader *loader)
const std::string GetBaseClassName() const
bool IsOwnedBy(const ClassLoader *loader)
AbstractClassFactory(const std::string &class_name, const std::string &base_class_name)
virtual Base * CreateObj() const =0
ClassFactory(const std::string &class_name, const std::string &base_class_name)