24 #ifndef __PLUGIN_MANAGER_H_ 25 #define __PLUGIN_MANAGER_H_ 27 #include <netcomm/fawkes/handler.h> 28 #include <core/utils/lock_list.h> 29 #include <core/utils/lock_map.h> 30 #include <config/change_handler.h> 31 #include <utils/system/fam.h> 32 #include <utils/system/dynamic_module/module.h> 42 class ThreadCollector;
46 class PluginListMessage;
49 class PluginManagerListener;
58 const char *meta_plugin_prefix,
60 bool init_cache =
true);
73 virtual void fam_event(
const char *filename,
unsigned int mask);
75 void load(
const char *plugin_list);
76 void unload(
const char *plugin_name);
91 void notify_loaded(
const char *plugin_name);
92 void notify_unloaded(
const char *plugin_name);
94 std::list<std::string> parse_plugin_list(
const char *plugin_type_list);
108 unsigned int next_plugin_id;
109 std::map< std::string, unsigned int > plugin_ids;
117 std::string __meta_plugin_prefix;
~PluginManager()
Destructor.
void set_module_flags(Module::ModuleFlags flags)
Set flags to open modules with.
virtual void fam_event(const char *filename, unsigned int mask)
Event has been raised.
std::list< std::pair< std::string, std::string > > get_available_plugins()
Generate list of all available plugins.
void init_pinfo_cache()
Initialize plugin info cache.
Fawkes library namespace.
bool try_lock()
Try to lock plugin manager.
Interface for configuration change handling.
virtual void config_comment_changed(const Configuration::ValueIterator *v)
Called whenever a comment of a watched value has changed.
This class manages plugins.
ModuleFlags
Flags for the loading process.
void lock()
Lock plugin manager.
void add_listener(PluginManagerListener *listener)
Add listener.
virtual void config_tag_changed(const char *new_location)
Called whenever the tag has changed.
void load(const char *plugin_list)
Load plugin.
void remove_listener(PluginManagerListener *listener)
Remove listener.
File Alteration Monitor Listener.
std::list< std::string > get_loaded_plugins()
Get list of loaded plugins.
void unload(const char *plugin_name)
Unload plugin.
PluginManager(ThreadCollector *thread_collector, Configuration *config, const char *meta_plugin_prefix, Module::ModuleFlags module_flags=Module::MODULE_FLAGS_DEFAULT, bool init_cache=true)
Constructor.
virtual void config_value_changed(const Configuration::ValueIterator *v)
Called whenever a watched value has changed.
virtual void config_value_erased(const char *path)
Called whenever a value has been erased from the config.
bool is_loaded(const char *plugin_name)
Check if plugin is loaded.
Iterator interface to iterate over config values.
FileAlterationMonitor thread wrapper.
void unlock()
Unlock plugin manager.
Mutex mutual exclusion lock.
Default flags, these are MODULE_BIND_GLOBAL, MODULE_BIND_NOW and MODULE_BIND_DEEP.
Interface for configuration handling.