SourceXtractorPlusPlus  0.11
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
SourceXtractor::PluginManager Class Reference

PluginManager handles the loading of plugins and calls their registration function, providing them with with a PluginAPI implementation. More...

#include <PluginManager.h>

Inheritance diagram for SourceXtractor::PluginManager:
[legend]
Collaboration diagram for SourceXtractor::PluginManager:
[legend]

Public Member Functions

virtual ~PluginManager ()=default
 
 PluginManager (std::shared_ptr< TaskFactoryRegistry > task_factory_registry, std::shared_ptr< OutputRegistry > output_registry, long config_manager_id, std::string plugin_path, std::vector< std::string > plugin_list)
 
void loadPlugins ()
 loads all the available plugins. Both those linked at compile-time and those loaded at run-time More...
 
virtual TaskFactoryRegistrygetTaskFactoryRegistry () const override
 
virtual OutputRegistrygetOutputRegistry () const override
 
Euclid::Configuration::ConfigManagergetConfigManager () const override
 
- Public Member Functions inherited from SourceXtractor::PluginAPI
virtual ~PluginAPI ()=default
 

Static Public Member Functions

template<typename T >
static void registerStaticPlugin ()
 registers a plugin, this is used to register plugins linked at compile-time More...
 

Private Attributes

boost::filesystem::path m_plugin_path
 
std::vector< std::stringm_plugin_list
 
std::shared_ptr
< TaskFactoryRegistry
m_task_factory_registry
 
std::shared_ptr< OutputRegistrym_output_registry
 
long m_config_manager_id
 

Static Private Attributes

static std::vector
< std::unique_ptr< Plugin > > 
s_static_plugins
 

Detailed Description

PluginManager handles the loading of plugins and calls their registration function, providing them with with a PluginAPI implementation.

Definition at line 53 of file PluginManager.h.

Constructor & Destructor Documentation

virtual SourceXtractor::PluginManager::~PluginManager ( )
virtualdefault
SourceXtractor::PluginManager::PluginManager ( std::shared_ptr< TaskFactoryRegistry task_factory_registry,
std::shared_ptr< OutputRegistry output_registry,
long  config_manager_id,
std::string  plugin_path,
std::vector< std::string plugin_list 
)
inline

Definition at line 58 of file PluginManager.h.

Member Function Documentation

Euclid::Configuration::ConfigManager& SourceXtractor::PluginManager::getConfigManager ( ) const
inlineoverridevirtual

Implements SourceXtractor::PluginAPI.

Definition at line 81 of file PluginManager.h.

References Euclid::Configuration::ConfigManager::getInstance(), and m_config_manager_id.

Here is the call graph for this function:

virtual OutputRegistry& SourceXtractor::PluginManager::getOutputRegistry ( ) const
inlineoverridevirtual

Implements SourceXtractor::PluginAPI.

Definition at line 77 of file PluginManager.h.

References m_output_registry.

virtual TaskFactoryRegistry& SourceXtractor::PluginManager::getTaskFactoryRegistry ( ) const
inlineoverridevirtual

Implements SourceXtractor::PluginAPI.

Definition at line 73 of file PluginManager.h.

References m_task_factory_registry.

void SourceXtractor::PluginManager::loadPlugins ( )

loads all the available plugins. Both those linked at compile-time and those loaded at run-time

Definition at line 51 of file PluginManager.cpp.

References Elements::Logging::info(), SourceXtractor::logger, m_plugin_list, m_plugin_path, and s_static_plugins.

Here is the call graph for this function:

template<typename T >
static void SourceXtractor::PluginManager::registerStaticPlugin ( )
inlinestatic

registers a plugin, this is used to register plugins linked at compile-time

Definition at line 87 of file PluginManager.h.

References s_static_plugins.

Member Data Documentation

long SourceXtractor::PluginManager::m_config_manager_id
private

Definition at line 97 of file PluginManager.h.

Referenced by getConfigManager().

std::shared_ptr<OutputRegistry> SourceXtractor::PluginManager::m_output_registry
private

Definition at line 96 of file PluginManager.h.

Referenced by getOutputRegistry().

std::vector<std::string> SourceXtractor::PluginManager::m_plugin_list
private

Definition at line 93 of file PluginManager.h.

Referenced by loadPlugins().

boost::filesystem::path SourceXtractor::PluginManager::m_plugin_path
private

Definition at line 92 of file PluginManager.h.

Referenced by loadPlugins().

std::shared_ptr<TaskFactoryRegistry> SourceXtractor::PluginManager::m_task_factory_registry
private

Definition at line 95 of file PluginManager.h.

Referenced by getTaskFactoryRegistry().

std::vector< std::unique_ptr< Plugin > > SourceXtractor::PluginManager::s_static_plugins
staticprivate

Definition at line 110 of file PluginManager.h.

Referenced by loadPlugins(), and registerStaticPlugin().


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