SourceXtractorPlusPlus  0.13
Please provide a description of the project.
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< TaskFactoryRegistrym_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

◆ ~PluginManager()

virtual SourceXtractor::PluginManager::~PluginManager ( )
virtualdefault

◆ PluginManager()

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

◆ getConfigManager()

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:

◆ getOutputRegistry()

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

Implements SourceXtractor::PluginAPI.

Definition at line 77 of file PluginManager.h.

References m_output_registry.

◆ getTaskFactoryRegistry()

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

Implements SourceXtractor::PluginAPI.

Definition at line 73 of file PluginManager.h.

References m_task_factory_registry.

◆ loadPlugins()

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 SourceXtractor::logger, m_plugin_list, m_plugin_path, and s_static_plugins.

Referenced by SEMain::getConfigParameters().

◆ registerStaticPlugin()

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

◆ m_config_manager_id

long SourceXtractor::PluginManager::m_config_manager_id
private

Definition at line 97 of file PluginManager.h.

Referenced by getConfigManager().

◆ m_output_registry

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

Definition at line 96 of file PluginManager.h.

Referenced by getOutputRegistry().

◆ m_plugin_list

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

Definition at line 93 of file PluginManager.h.

Referenced by loadPlugins().

◆ m_plugin_path

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

Definition at line 92 of file PluginManager.h.

Referenced by loadPlugins().

◆ m_task_factory_registry

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

Definition at line 95 of file PluginManager.h.

Referenced by getTaskFactoryRegistry().

◆ s_static_plugins

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: