14#include "arcane/utils/ArcanePrecomp.h"
16#include "arcane/utils/Iostream.h"
17#include "arcane/utils/List.h"
18#include "arcane/utils/Deleter.h"
19#include "arcane/utils/String.h"
20#include "arcane/utils/ITraceMng.h"
21#include "arcane/utils/FatalErrorException.h"
22#include "arcane/utils/Ref.h"
24#include "arcane/core/IModuleMng.h"
25#include "arcane/core/IModule.h"
51 void dumpList(std::ostream&)
override;
60 std::map<String, Ref<IModule>> m_modules_map;
77ModuleMng([[maybe_unused]] ISubDomain* sd)
100 m_modules_map.clear();
109 const String& module_name =
module->name();
110 auto iter = m_modules_map.find(module_name);
111 if (iter != m_modules_map.end())
112 ARCANE_FATAL(
"A module named '{0}' is already registered", module_name);
114 m_modules_map.insert(std::make_pair(module_name, module));
123 const String& module_name =
module->name();
124 auto iter = m_modules_map.find(module_name);
125 m_modules_map.erase(iter);
136 o <<
"** ModuleMng::dump_list: " <<
m_modules.count();
139 o <<
"** Module: " << (*i)->name();
150 IModule* module = _findModule(name);
153 return !
module->disabled();
162 return _findModule(name);
169_findModule(
const String& name)
171 auto iter = m_modules_map.find(name);
172 if (iter != m_modules_map.end())
173 return iter->second.get();
#define ARCANE_FATAL(...)
Macro throwing a FatalErrorException.
Module manager interface.
Interface of the subdomain manager.
ListEnumeratorT< IModule * > Enumerator
bool isModuleActive(const String &name) override
Indicates if the module named name is active.
IModule * findModule(const String &name) override
Returns the instance of the module named name.
void addModule(Ref< IModule >) override
Adds module m to the manager.
ModuleList m_modules
List of modules.
void removeAllModules() override
Removes and destroys modules managed by this manager.
void removeModule(Ref< IModule >) override
Removes module m.
void dumpList(std::ostream &) override
Prints the list of modules in the manager to a stream o.
ModuleCollection modules() const override
List of modules.
InstanceType * get() const
Associated instance or nullptr if none.
Reference to an instance.
Unicode character string.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
List< IModule * > ModuleList
Array of modules.
Collection< IModule * > ModuleCollection
Collection of modules.