Mila 0.13.48
Deep Neural Network Library
Loading...
Searching...
No Matches
Mila::Dnn::Extensibility::PluginManager Class Referenceexport

Manages loading and querying of module plugins. More...

Classes

struct  PluginEntry

Public Member Functions

 ~PluginManager ()
IModulePlugin * findPlugin (const std::string &module_type) const
 Find plugin that can handle given module type.
std::vector< PluginInfolistPlugins () const
 List all loaded plugins.
void loadPlugin (const std::string &plugin_path)
 Load a plugin from shared library.
void loadPluginsFromDirectory (const std::string &dir_path)
 Load all plugins from a directory.

Static Public Member Functions

static PluginManagerinstance ()

Private Member Functions

void * getSymbol (void *handle, const char *name)
bool isCompatible (const std::string &plugin_api_version) const
void * loadLibrary (const std::string &path)
void unloadLibrary (void *handle)

Private Attributes

std::vector< PluginEntryplugins_

Static Private Attributes

static constexpr const char * PLUGIN_EXTENSION = ".so"

Detailed Description

Manages loading and querying of module plugins.

Constructor & Destructor Documentation

◆ ~PluginManager()

Mila::Dnn::Extensibility::PluginManager::~PluginManager ( )
inline
Here is the call graph for this function:

Member Function Documentation

◆ findPlugin()

IModulePlugin * Mila::Dnn::Extensibility::PluginManager::findPlugin ( const std::string & module_type) const
inline

Find plugin that can handle given module type.

◆ getSymbol()

void * Mila::Dnn::Extensibility::PluginManager::getSymbol ( void * handle,
const char * name )
private
Here is the caller graph for this function:

◆ instance()

PluginManager & Mila::Dnn::Extensibility::PluginManager::instance ( )
inlinestatic

◆ isCompatible()

bool Mila::Dnn::Extensibility::PluginManager::isCompatible ( const std::string & plugin_api_version) const
inlineprivate
Here is the caller graph for this function:

◆ listPlugins()

std::vector< PluginInfo > Mila::Dnn::Extensibility::PluginManager::listPlugins ( ) const
inline

List all loaded plugins.

◆ loadLibrary()

void * Mila::Dnn::Extensibility::PluginManager::loadLibrary ( const std::string & path)
private
Here is the caller graph for this function:

◆ loadPlugin()

void Mila::Dnn::Extensibility::PluginManager::loadPlugin ( const std::string & plugin_path)
inline

Load a plugin from shared library.

Parameters
plugin_pathPath to .so/.dll file
Exceptions
std::runtime_errorif load fails or version incompatible
Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadPluginsFromDirectory()

void Mila::Dnn::Extensibility::PluginManager::loadPluginsFromDirectory ( const std::string & dir_path)
inline

Load all plugins from a directory.

Here is the call graph for this function:

◆ unloadLibrary()

void Mila::Dnn::Extensibility::PluginManager::unloadLibrary ( void * handle)
private
Here is the caller graph for this function:

Member Data Documentation

◆ PLUGIN_EXTENSION

const char* Mila::Dnn::Extensibility::PluginManager::PLUGIN_EXTENSION = ".so"
staticconstexprprivate

◆ plugins_

std::vector<PluginEntry> Mila::Dnn::Extensibility::PluginManager::plugins_
private

The documentation for this class was generated from the following file: