SourceXtractorPlusPlus 1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
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:
Collaboration diagram for SourceXtractor::PluginManager:

Public Member Functions

 ~PluginManager () override=default
 PluginManager (std::shared_ptr< TaskFactoryRegistry > task_factory_registry, std::shared_ptr< OutputRegistry > output_registry, 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
TaskFactoryRegistrygetTaskFactoryRegistry () const override
OutputRegistrygetOutputRegistry () 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

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

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 54 of file PluginManager.h.

Constructor & Destructor Documentation

◆ ~PluginManager()

SourceXtractor::PluginManager::~PluginManager ( )
overridedefault

◆ PluginManager()

SourceXtractor::PluginManager::PluginManager ( std::shared_ptr< TaskFactoryRegistry > task_factory_registry,
std::shared_ptr< OutputRegistry > output_registry,
std::string plugin_path,
std::vector< std::string > plugin_list )
inline

Definition at line 59 of file PluginManager.h.

References m_output_registry, m_plugin_list, m_plugin_path, m_task_factory_registry, and std::move().

Here is the call graph for this function:

Member Function Documentation

◆ getOutputRegistry()

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

Implements SourceXtractor::PluginAPI.

Definition at line 76 of file PluginManager.h.

References m_output_registry.

◆ getTaskFactoryRegistry()

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

Implements SourceXtractor::PluginAPI.

Definition at line 72 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 Euclid::Configuration::logger, m_plugin_list, m_plugin_path, and s_static_plugins.

◆ registerStaticPlugin()

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

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

Definition at line 82 of file PluginManager.h.

References s_static_plugins.

Referenced by SourceXtractor::StaticPlugin< PluginType >::StaticPlugin().

Member Data Documentation

◆ m_output_registry

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

Definition at line 91 of file PluginManager.h.

Referenced by getOutputRegistry(), and PluginManager().

◆ m_plugin_list

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

Definition at line 88 of file PluginManager.h.

Referenced by loadPlugins(), and PluginManager().

◆ m_plugin_path

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

Definition at line 87 of file PluginManager.h.

Referenced by loadPlugins(), and PluginManager().

◆ m_task_factory_registry

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

Definition at line 90 of file PluginManager.h.

Referenced by getTaskFactoryRegistry(), and PluginManager().

◆ s_static_plugins

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

Definition at line 104 of file PluginManager.h.

Referenced by loadPlugins(), and registerStaticPlugin().


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