24#ifndef _PLUGIN_LOADER_H_
25#define _PLUGIN_LOADER_H_
27#include <core/exception.h>
28#include <core/plugin.h>
48 std::string plugin_name_;
73 Module * open_module(
const char *plugin_name);
74 std::string get_string_symbol(
const char *plugin_name,
75 const char *symbol_name,
76 const char *section_name =
".fawkes_plugin");
77 Plugin * create_instance(
const char *plugin_name,
Module *module);
84 std::string plugin_base_dir_;
Interface for configuration handling.
Base class for exceptions in Fawkes.
Dynamic module loader for Linux, FreeBSD, and MacOS X.
This exception is thrown if the requested plugin could not be loaded.
~PluginLoadException() noexcept
Destructor.
PluginLoadException(const char *plugin, const char *message)
Constructor.
std::string plugin_name() const
Get name of plugin which failed to load.
This class manages plugins.
bool is_loaded(const char *plugin_name)
Check if a plugin is loaded.
ModuleManager * get_module_manager() const
Get module manager.
std::string get_description(const char *plugin_name)
Get plugin description.
Plugin * load(const char *plugin_name)
Load a specific plugin The plugin loader is clever and guarantees that every plugin is only loaded on...
void unload(Plugin *plugin)
Unload the given plugin This will unload the given plugin.
~PluginLoader()
Destructor.
PluginLoader(const char *plugin_base_dir, Configuration *config)
Constructor.
This exception is thrown if the requested plugin could not be unloaded.
PluginUnloadException(const char *plugin_type, const char *add_msg=NULL)
Constructor.
Fawkes library namespace.