Fawkes API
Fawkes Development Version
|
24 #ifndef _PLUGIN_MANAGER_H_
25 #define _PLUGIN_MANAGER_H_
27 #include <config/change_handler.h>
28 #include <core/utils/lock_list.h>
29 #include <core/utils/lock_map.h>
30 #include <utils/system/dynamic_module/module.h>
31 #include <utils/system/fam.h>
38 class ThreadCollector;
42 class PluginListMessage;
45 class PluginManagerListener;
52 const char * meta_plugin_prefix,
54 bool init_cache =
true);
67 virtual void fam_event(
const char *filename,
unsigned int mask);
69 void load(
const std::string &plugin_list);
70 void load(
const std::list<std::string> &plugin_list);
71 void unload(
const std::string &plugin_name);
73 bool is_loaded(
const std::string &plugin_name);
89 void notify_loaded(
const char *plugin_name);
90 void notify_unloaded(
const char *plugin_name);
92 std::list<std::string> parse_plugin_list(
const char *plugin_type_list);
106 unsigned int next_plugin_id;
107 std::map<std::string, unsigned int> plugin_ids;
115 std::string meta_plugin_prefix_;
ModuleFlags
Flags for the loading process.
void init_pinfo_cache()
Initialize plugin info cache.
bool try_lock()
Try to lock plugin manager.
bool is_loaded(const std::string &plugin_name)
Check if plugin is loaded.
void unlock()
Unlock plugin manager.
Mutex mutual exclusion lock.
void lock()
Lock plugin manager.
void set_module_flags(Module::ModuleFlags flags)
Set flags to open modules with.
File Alteration Monitor Listener.
Interface for configuration change handling.
void remove_listener(PluginManagerListener *listener)
Remove listener.
This class manages plugins.
std::list< std::pair< std::string, std::string > > get_available_plugins()
Generate list of all available plugins.
FileAlterationMonitor thread wrapper.
std::list< std::string > get_loaded_plugins()
Get list of loaded plugins.
virtual void config_comment_changed(const Configuration::ValueIterator *v)
Called whenever a comment of a watched value has changed.
Iterator interface to iterate over config values.
Interface for configuration handling.
PluginManager(ThreadCollector *thread_collector, Configuration *config, const char *meta_plugin_prefix, Module::ModuleFlags module_flags=Module::MODULE_FLAGS_DEFAULT, bool init_cache=true)
Constructor.
std::list< std::string > get_meta_plugin_children(const std::string &plugin_name)
Get meta plugin children.
Fawkes library namespace.
void load(const std::string &plugin_list)
Load plugin.
bool is_meta_plugin(const std::string &plugin_name)
Check if plugin is a meta plugin.
void add_listener(PluginManagerListener *listener)
Add listener.
Plugin representation for JSON transfer.
virtual void config_tag_changed(const char *new_location)
Called whenever the tag has changed.
@ MODULE_FLAGS_DEFAULT
Default flags, these are MODULE_BIND_GLOBAL, MODULE_BIND_NOW and MODULE_BIND_DEEP.
~PluginManager()
Destructor.
void unload(const std::string &plugin_name)
Unload plugin.
virtual void config_value_erased(const char *path)
Called whenever a value has been erased from the config.
virtual void fam_event(const char *filename, unsigned int mask)
Event has been raised.
virtual void config_value_changed(const Configuration::ValueIterator *v)
Called whenever a watched value has changed.