Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IModuleMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IModuleMng.h (C) 2000-2025 */
9/* */
10/* Module manager interface. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IMODULEMNG_H
13#define ARCANE_CORE_IMODULEMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IModule;
29class Msg;
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
39{
40 public:
41
43
44 virtual ~IModuleMng() {}
45
46 public:
47
49 virtual void addModule(Ref<IModule> m) = 0;
50
52 virtual void removeModule(Ref<IModule> m) = 0;
53
55 virtual void dumpList(std::ostream& o) = 0;
56
58 virtual ModuleCollection modules() const = 0;
59
61 virtual void removeAllModules() = 0;
62
64
67 virtual bool isModuleActive(const String& name) = 0;
68
70
73 virtual IModule* findModule(const String& name) = 0;
74};
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79} // End namespace Arcane
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84#endif
Declarations of Arcane's general types.
Module manager interface.
Definition IModuleMng.h:39
virtual void addModule(Ref< IModule > m)=0
Adds module m to the manager.
virtual void dumpList(std::ostream &o)=0
Prints the list of modules in the manager to a stream o.
virtual void removeModule(Ref< IModule > m)=0
Removes module m.
virtual ModuleCollection modules() const =0
List of modules.
virtual bool isModuleActive(const String &name)=0
Indicates if the module named name is active.
virtual void removeAllModules()=0
Removes and destroys modules managed by this manager.
virtual ~IModuleMng()
Destructor.
Definition IModuleMng.h:44
virtual IModule * findModule(const String &name)=0
Returns the instance of the module named name.
Interface of a module.
Definition IModule.h:40
Reference to an instance.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Collection< IModule * > ModuleCollection
Collection of modules.