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/IModuleMng.h"
25#include "arcane/IModule.h"
50 void dumpList(std::ostream&)
override;
59 std::map<String,Ref<IModule>> m_modules_map;
76ModuleMng([[maybe_unused]] ISubDomain* sd)
98 m_modules_map.clear();
107 const String& module_name =
module->name();
108 auto iter = m_modules_map.find(module_name);
109 if (iter!=m_modules_map.end())
110 ARCANE_FATAL(
"A module named '{0}' is already registered",module_name);
112 m_modules_map.insert(std::make_pair(module_name,module));
121 const String& module_name =
module->name();
122 auto iter = m_modules_map.find(module_name);
123 m_modules_map.erase(iter);
134 o <<
"** ModuleMng::dump_list: " <<
m_modules.count();
137 o <<
"** Module: " << (*i)->name();
148 IModule* module = _findModule(name);
151 return !
module->disabled();
160 return _findModule(name);
167_findModule(
const String& name)
169 auto iter = m_modules_map.find(name);
170 if (iter!=m_modules_map.end())
171 return iter->second.get();
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Interface du gestionnaire de modules.
Interface du gestionnaire d'un sous-domaine.
ListEnumeratorT< IModule * > Enumerator
Gestionnaire des modules.
bool isModuleActive(const String &name) override
Indique si le module de nom name est actif.
IModule * findModule(const String &name) override
Retourne l'instance du module de nom name.
void addModule(Ref< IModule >) override
Ajoute le module m au gestionnaire.
ModuleList m_modules
Liste des modules.
void removeAllModules() override
Supprime et détruit les modules gérés par ce gestionnaire.
void removeModule(Ref< IModule >) override
Supprime le module m.
void dumpList(std::ostream &) override
Affiche la liste des modules du gestionnaire sur un flux o.
ModuleCollection modules() const override
Liste des modules.
Référence à une instance.
InstanceType * get() const
Instance associée ou nullptr si aucune.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
List< IModule * > ModuleList
Tableau de modules.
Collection< IModule * > ModuleCollection
Collection de modules.