Namespaces | Functions
class_loader_core.cpp File Reference
#include "class_loader/class_loader_core.hpp"
#include "class_loader/class_loader.hpp"
#include <Poco/SharedLibrary.h>
#include <cassert>
#include <cstddef>
#include <string>
#include <vector>
Include dependency graph for class_loader_core.cpp:

Go to the source code of this file.

Namespaces

 class_loader
 
 class_loader::impl
 

Functions

void class_loader::impl::addClassLoaderOwnerForAllExistingMetaObjectsForLibrary (const std::string &library_path, ClassLoader *loader)
 
MetaObjectVector class_loader::impl::allMetaObjects (const FactoryMap &factories)
 
MetaObjectVector class_loader::impl::allMetaObjects ()
 
MetaObjectVector class_loader::impl::allMetaObjectsForClassLoader (const ClassLoader *owner)
 
MetaObjectVector class_loader::impl::allMetaObjectsForLibrary (const std::string &library_path)
 
MetaObjectVector class_loader::impl::allMetaObjectsForLibraryOwnedBy (const std::string &library_path, const ClassLoader *owner)
 
bool class_loader::impl::areThereAnyExistingMetaObjectsForLibrary (const std::string &library_path)
 
void class_loader::impl::destroyMetaObjectsForLibrary (const std::string &library_path, FactoryMap &factories, const ClassLoader *loader)
 
void class_loader::impl::destroyMetaObjectsForLibrary (const std::string &library_path, const ClassLoader *loader)
 
MetaObjectVector class_loader::impl::filterAllMetaObjectsAssociatedWithLibrary (const MetaObjectVector &to_filter, const std::string &library_path)
 
MetaObjectVector class_loader::impl::filterAllMetaObjectsOwnedBy (const MetaObjectVector &to_filter, const ClassLoader *owner)
 
LibraryVector::iterator class_loader::impl::findLoadedLibrary (const std::string &library_path)
 
CLASS_LOADER_PUBLIC std::vector< std::string > class_loader::impl::getAllLibrariesUsedByClassLoader (const ClassLoader *loader)
 This function returns the names of all libraries in use by a given class loader. More...
 
CLASS_LOADER_PUBLIC ClassLoader * class_loader::impl::getCurrentlyActiveClassLoader ()
 Gets the ClassLoader currently in scope which used when a library is being loaded. More...
 
ClassLoader *& class_loader::impl::getCurrentlyActiveClassLoaderReference ()
 
CLASS_LOADER_PUBLIC std::string class_loader::impl::getCurrentlyLoadingLibraryName ()
 When a library is being loaded, in order for factories to know which library they are being associated with, they use this function to query which library is being loaded. More...
 
std::string & class_loader::impl::getCurrentlyLoadingLibraryNameReference ()
 
CLASS_LOADER_PUBLIC FactoryMap & class_loader::impl::getFactoryMapForBaseClass (const std::string &typeid_base_class_name)
 This function extracts a reference to the FactoryMap for appropriate base class out of the global plugin base to factory map. This function should be used by functions in this namespace that need to access the various factories so as to make sure the right key is generated to index into the global map. More...
 
CLASS_LOADER_PUBLIC BaseToFactoryMapMap & class_loader::impl::getGlobalPluginBaseToFactoryMapMap ()
 Gets a handle to a global data structure that holds a map of base class names (Base class describes plugin interface) to a FactoryMap which holds the factories for the various different concrete classes that can be instantiated. Note that the Base class is NOT THE LITERAL CLASSNAME, but rather the result of typeid(Base).name() which sometimes is the literal class name (as on Windows) but is often in mangled form (as on Linux). More...
 
CLASS_LOADER_PUBLIC LibraryVector & class_loader::impl::getLoadedLibraryVector ()
 Gets a handle to a list of open libraries in the form of LibraryPairs which encode the library path+name and the handle to the underlying Poco::SharedLibrary. More...
 
CLASS_LOADER_PUBLIC boost::recursive_mutex & class_loader::impl::getLoadedLibraryVectorMutex ()
 To provide thread safety, all exposed plugin functions can only be run serially by multiple threads. This is implemented by using critical sections enforced by a single mutex which is locked and released with the following two functions. More...
 
MetaObjectVector & class_loader::impl::getMetaObjectGraveyard ()
 
CLASS_LOADER_PUBLIC boost::recursive_mutex & class_loader::impl::getPluginBaseToFactoryMapMapMutex ()
 
CLASS_LOADER_PUBLIC bool class_loader::impl::hasANonPurePluginLibraryBeenOpened ()
 Indicates if a library containing more than just plugins has been opened by the running process. More...
 
CLASS_LOADER_PUBLIC void class_loader::impl::hasANonPurePluginLibraryBeenOpened (bool hasIt)
 Sets a flag indicating if a library containing more than just plugins has been opened by the running process. More...
 
bool & class_loader::impl::hasANonPurePluginLibraryBeenOpenedReference ()
 
void class_loader::impl::insertMetaObjectIntoGraveyard (AbstractMetaObjectBase *meta_obj)
 
CLASS_LOADER_PUBLIC bool class_loader::impl::isLibraryLoaded (const std::string &library_path, ClassLoader *loader)
 Indicates if passed library loaded within scope of a ClassLoader. The library maybe loaded in memory, but to the class loader it may not be. More...
 
CLASS_LOADER_PUBLIC bool class_loader::impl::isLibraryLoadedByAnybody (const std::string &library_path)
 Indicates if passed library has been loaded by ANY ClassLoader. More...
 
CLASS_LOADER_PUBLIC void class_loader::impl::loadLibrary (const std::string &library_path, ClassLoader *loader)
 Loads a library into memory if it has not already been done so. Attempting to load an already loaded library has no effect. More...
 
CLASS_LOADER_PUBLIC void class_loader::impl::printDebugInfoToScreen ()
 
void class_loader::impl::purgeGraveyardOfMetaobjects (const std::string &library_path, ClassLoader *loader, bool delete_objs)
 
void class_loader::impl::revivePreviouslyCreateMetaobjectsFromGraveyard (const std::string &library_path, ClassLoader *loader)
 
CLASS_LOADER_PUBLIC void class_loader::impl::setCurrentlyActiveClassLoader (ClassLoader *loader)
 Sets the ClassLoader currently in scope which used when a library is being loaded. More...
 
CLASS_LOADER_PUBLIC void class_loader::impl::setCurrentlyLoadingLibraryName (const std::string &library_name)
 When a library is being loaded, in order for factories to know which library they are being associated with, this function is called to set the name of the library currently being loaded. More...
 
CLASS_LOADER_PUBLIC void class_loader::impl::unloadLibrary (const std::string &library_path, ClassLoader *loader)
 Unloads a library if it loaded in memory and cleans up its corresponding class factories. If it is not loaded, the function has no effect. More...
 


class_loader
Author(s): Mirza Shah, Steven! Ragnarök
autogenerated on Mon Feb 28 2022 22:02:03