36 template <
typename Impl,
typename Base>
46 const auto implType = cras::getTypeName<Impl>();
47 const auto baseType = cras::getTypeName<Base>();
50 class_loader::impl::getFactoryMapForBaseClass<Base>()[implType] = metaObject;
56 const auto implType = cras::getTypeName<Impl>();
57 auto metaObject = class_loader::impl::getFactoryMapForBaseClass<Base>()[implType];
58 metaObject->removeOwningClassLoader(
this);
59 class_loader::impl::getFactoryMapForBaseClass<Base>().erase(implType);
70 const auto implType = cras::getTypeName<Impl>();
71 const auto baseType = cras::getTypeName<Base>();
73 loader.
classes_available_.insert({pluginlibType, {pluginlibType, implType, baseType,
"",
"",
"",
""}});
This pluginlib classloader alternative can load compiled-in classes and provide them as if they were ...
PreloadingClassLoader()
Construct the class loader.
class_loader::MultiLibraryClassLoader lowlevel_class_loader_
static void unPreload(const std::string &pluginlibType, pluginlib::ClassLoader< Base > &loader)
Revert the effect of preload().
virtual int unloadLibraryForClass(const std::string &lookup_name)
static void preload(const std::string &pluginlibType, pluginlib::ClassLoader< Base > &loader)
"Install" the preloading classloader into the given classloader.
Utilities for working with C++ types.
CLASS_LOADER_PUBLIC ClassLoader(const std::string &library_path, bool ondemand_load_unload=false)
LibraryToClassLoaderMap active_class_loaders_
~PreloadingClassLoader() override
std::map< std::string, ClassDesc > classes_available_