24 #include <core/threading/mutex.h>
25 #include <core/threading/mutex_locker.h>
26 #include <utils/system/dynamic_module/module_manager.h>
44 module_base_dir_ = module_base_dir;
46 open_flags_ = open_flags;
52 std::map<std::string, Module *>::iterator i;
53 for (i = modules_.begin(); i != modules_.end(); ++i) {
66 open_flags_ = open_flags;
83 if (modules_.find(filename) != modules_.end()) {
84 modules_[filename]->ref();
86 return modules_[filename];
88 Module *module =
new Module(std::string(module_base_dir_) +
"/" + filename, open_flags_);
122 if (modules_.find(filename) != modules_.end()) {
123 modules_[filename]->unref();
124 if (modules_[filename]->notref()) {
125 delete modules_[filename];
126 modules_.erase(filename);
145 if (modules_.find(filename) != modules_.end()) {
146 modules_[filename]->ref();
147 return modules_[filename];
162 return (modules_.find(filename) != modules_.end());