24 #include <utils/system/dynamic_module/module_manager.h> 25 #include <core/threading/mutex.h> 26 #include <core/threading/mutex_locker.h> 49 __module_base_dir = module_base_dir;
50 __mutex =
new Mutex();
51 __open_flags = open_flags;
57 std::map<std::string, Module * >::iterator i;
58 for (i = __modules.begin(); i != __modules.end(); ++i) {
72 __open_flags = open_flags;
90 if ( __modules.find(filename) != __modules.end() ) {
91 __modules[filename]->ref();
93 return __modules[filename];
95 Module *module =
new Module(std::string(__module_base_dir) +
"/" + filename,
132 if ( __modules.find(filename) != __modules.end() ) {
133 __modules[filename]->unref();
134 if (__modules[filename]->notref()) {
135 delete __modules[filename];
136 __modules.erase( filename );
156 if ( __modules.find(filename) != __modules.end() ) {
157 __modules[filename]->ref();
158 return __modules[filename];
174 return ( __modules.find(filename) != __modules.end() );
void set_open_flags(Module::ModuleFlags open_flags)
Set flags to open modules with.
virtual ~ModuleManager()
Destructor.
virtual void close_module(Module *module)
Close a module by Module instance.
ModuleManager(const char *module_base_dir, Module::ModuleFlags open_flags=Module::MODULE_FLAGS_DEFAULT)
Constructor of NetworkManagerTemplate.
virtual void open()
Open the module.
Fawkes library namespace.
void unlock()
Unlock the mutex.
ModuleFlags
Flags for the loading process.
virtual bool module_opened(const char *filename)
Check if the module is already opened.
Dynamic module loader for Linux, FreeBSD, and MacOS X.
virtual const char * get_module_file_extension()
Get the file extension for the current module type.
virtual std::string get_base_filename()
Get the base file name of the module.
virtual Module * open_module(const char *filename)
Open a module.
void lock()
Lock this mutex.
Mutex mutual exclusion lock.
virtual Module * get_module(const char *filename)
Get a module if opened.
static const char * get_file_extension()
Get file extension for dl modules.