34 m_autoLoadModules.clear();
40 m_autoLoadModules.clear();
43 for(
const std::string& moduleDir : moduleDirs) {
45 for(
const std::string& moduleFile : moduleFiles) {
48 if(module && module->isAutoLoad())
49 m_autoLoadModules.insert(std::make_pair(module->getAutoLoadPriority(), module));
57 for(
auto& pair : m_autoLoadModules) {
58 int priority = pair.first;
59 if(priority > maxPriority)
73 std::string name = moduleNode->
valueAt(
"name");
81 module->discover(moduleNode);
85 m_modules.push_back(module);
95 if(!module || !module->load())
101 auto modulesBackup = m_modules;
102 for(
const ModulePtr& module : modulesBackup)
108 std::deque<ModulePtr> toLoadList;
111 for(
int i=0;i<10;++i) {
112 auto modulesBackup = m_modules;
113 for(
const ModulePtr& module : modulesBackup) {
114 if(module->isLoaded() && module->canUnload()) {
116 toLoadList.push_front(module);
121 for(
const ModulePtr& module : toLoadList)
128 if(module->getName() == moduleName)
135 auto it = std::find(m_modules.begin(), m_modules.end(), module);
136 if(it != m_modules.end())
138 if(module->isLoaded())
139 m_modules.push_front(module);
141 m_modules.push_back(module);