SourceXtractorPlusPlus  0.19
SourceXtractor++, the next generation SExtractor
 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:
Inheritance graph
[legend]
Collaboration diagram for SourceXtractor::PluginManager:
Collaboration graph
[legend]

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 More...
 
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 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
 

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

SourceXtractor::PluginManager::~PluginManager ( )
overridedefault
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 std::move().

Here is the call graph for this function:

Member Function Documentation

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

Implements SourceXtractor::PluginAPI.

Definition at line 76 of file PluginManager.h.

References m_output_registry.

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

Implements SourceXtractor::PluginAPI.

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

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

References s_static_plugins.

Member Data Documentation

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

Definition at line 91 of file PluginManager.h.

Referenced by getOutputRegistry().

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

Definition at line 88 of file PluginManager.h.

Referenced by loadPlugins().

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

Definition at line 87 of file PluginManager.h.

Referenced by loadPlugins().

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

Definition at line 90 of file PluginManager.h.

Referenced by getTaskFactoryRegistry().

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: