$darkmode
Elektra 0.11.0
Public Member Functions | List of all members
kdb::tools::ModulesPluginDatabase Class Reference

A plugin database that works with installed modules. More...

#include <plugindatabase.hpp>

Inheritance diagram for kdb::tools::ModulesPluginDatabase:
Inheritance graph
[legend]
Collaboration diagram for kdb::tools::ModulesPluginDatabase:
Collaboration graph
[legend]

Public Member Functions

std::vector< std::string > listAllPlugins () const
 list all plugins More...
 
std::string lookupInfo (PluginSpec const &spec, std::string const &which) const
 lookup contract clauses or dynamic information More...
 
func_t getSymbol (PluginSpec const &whichplugin, std::string const &which) const
 get exported plugin symbol More...
 
PluginSpec lookupMetadata (std::string const &which) const
 lookup which plugin handles metadata More...
 
PluginSpec lookupProvides (std::string const &provides) const
 lookup which plugin is a provider for that plugin More...
 
std::map< int, PluginSpeclookupAllProvidesWithStatus (std::string const &provides) const
 looks up all plugins which are a suitable provider More...
 
std::vector< PluginSpeclookupAllProvides (std::string const &provides) const
 looks up all plugins which are a suitable provider More...
 

Additional Inherited Members

- Public Types inherited from kdb::tools::PluginDatabase
enum  Status { provides , real , missing }
 
- Static Public Member Functions inherited from kdb::tools::PluginDatabase
static int calculateStatus (std::string statusString)
 

Detailed Description

A plugin database that works with installed modules.

Member Function Documentation

◆ getSymbol()

PluginDatabase::func_t kdb::tools::ModulesPluginDatabase::getSymbol ( PluginSpec const &  whichplugin,
std::string const &  which 
) const
virtual

get exported plugin symbol

Parameters
whichpluginfrom which plugin?
whichwhich symbol would you like to look up?
Returns
the function pointer to the exported symbol or NULL if the symbol was not found

Implements kdb::tools::PluginDatabase.

Reimplemented in kdb::tools::MockPluginDatabase.

◆ listAllPlugins()

std::vector< std::string > kdb::tools::ModulesPluginDatabase::listAllPlugins ( ) const
virtual

list all plugins

If Elektra is compiled with plugins, it will search for shared libraries. In any case, if no shared libraries were found it will fallback to an internal list (plugins that were compiled together with Elektra).

Returns
a list of all available plugins

Implements kdb::tools::PluginDatabase.

Reimplemented in kdb::tools::MockPluginDatabase.

◆ lookupAllProvides()

std::vector< PluginSpec > kdb::tools::ModulesPluginDatabase::lookupAllProvides ( std::string const &  provides) const
virtual

looks up all plugins which are a suitable provider

Note
in case a plugin name is provided, the plugin with the name will also be part of the result. But if there are other plugins providing the requirement, then they will also be part of the result. The ordering of the resulting vector has no special meaning.
Parameters
providesis the provider to find
Returns
a vector of plugins offering the requirement or are named after it

Implements kdb::tools::PluginDatabase.

◆ lookupAllProvidesWithStatus()

std::map< int, PluginSpec > kdb::tools::ModulesPluginDatabase::lookupAllProvidesWithStatus ( std::string const &  provides) const
virtual

looks up all plugins which are a suitable provider

Note
in case a plugin name is provided, the plugin with the name will also be part of the result. But if there are other plugins providing the requirement, then they will also be part of the result.
Parameters
providesis the provider to find
Returns
a map of plugins with their status offering the requirement or are named after it

Implements kdb::tools::PluginDatabase.

◆ lookupInfo()

std::string kdb::tools::ModulesPluginDatabase::lookupInfo ( PluginSpec const &  whichplugin,
std::string const &  which 
) const
virtual

lookup contract clauses or dynamic information

Parameters
whichpluginabout which plugin?
whichabout which clause in the contract?
Returns
the clause of the contract

Implements kdb::tools::PluginDatabase.

Reimplemented in kdb::tools::MockPluginDatabase.

◆ lookupMetadata()

PluginSpec kdb::tools::ModulesPluginDatabase::lookupMetadata ( std::string const &  which) const
virtual

lookup which plugin handles metadata

Parameters
whichthe metadata of interest
Returns
the best suited plugin specification which provides it

Implements kdb::tools::PluginDatabase.

◆ lookupProvides()

PluginSpec kdb::tools::ModulesPluginDatabase::lookupProvides ( std::string const &  provides) const
virtual

lookup which plugin is a provider for that plugin

Note
will return a PluginSpec with getName() == provides if the string provides actually is a plugin name.
Parameters
providesis the provider to find
Exceptions
NoPluginif no plugin that provides the functionality could be found
Returns
the plugin itself or the best suited plugin specification which provides it

Implements kdb::tools::PluginDatabase.


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