Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
AbstractModule.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* AbstractModule.h (C) 2000-2021 */
9/* */
10/* Classe abstraite de base d'un module. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ABSTRACTMODULE_H
13#define ARCANE_ABSTRACTMODULE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18#include "arcane/utils/VersionInfo.h"
19#include "arcane/utils/TraceAccessor.h"
20
21#include "arcane/ArcaneTypes.h"
22#include "arcane/IModule.h"
23#include "arcane/ModuleBuildInfo.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28namespace Arcane
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
34class ModuleBuildInfo;
35typedef ModuleBuildInfo ModuleBuilder;
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
46class ARCANE_CORE_EXPORT AbstractModule
47: public TraceAccessor
48, public IModule
49{
50 public:
51
54
55 public:
56
58 virtual ~AbstractModule();
59
60 public:
61
63 VersionInfo versionInfo() const override { return m_version_info; }
64
65 public:
66
79 static void staticInitialize(ISubDomain* sd) { ARCANE_UNUSED(sd); }
80
81 public:
82
84 String name() const override { return m_name; }
86 ISession* session() const override { return m_session; }
88 ISubDomain* subDomain() const override { return m_sub_domain; }
90 IMesh* defaultMesh() const override { return m_default_mesh_handle.mesh(); }
92 MeshHandle defaultMeshHandle() const override { return m_default_mesh_handle; }
94 IParallelMng* parallelMng() const override;
96 IAcceleratorMng* acceleratorMng() const override;
98 ITraceMng* traceMng() const override;
100 void setUsed(bool v) override { m_used = v; }
102 bool used() const override { return m_used; }
104 void setDisabled(bool v) override { m_disabled = v; }
106 bool disabled() const override { return m_disabled; }
108
122 bool isGarbageCollected() const override { return false; }
123
124 protected:
125
126 void _setVersionInfo(const VersionInfo& vi)
127 {
128 m_version_info = vi;
129 }
130
131 private:
132
137 bool m_used;
141};
142
143/*---------------------------------------------------------------------------*/
144/*---------------------------------------------------------------------------*/
145
146} // End namespace Arcane
147
148/*---------------------------------------------------------------------------*/
149/*---------------------------------------------------------------------------*/
150
151#endif
152
Classe représentant un module.
ISession * session() const override
Session associé au module.
bool m_used
true si le module est utilisé
void setDisabled(bool v) override
Positionne le flag d'activation du module.
static void staticInitialize(ISubDomain *sd)
Initialisation du module pour le sous-domaine sd.
String name() const override
Nom du module.
String m_name
Nom du module.
MeshHandle defaultMeshHandle() const override
Maillage par défaut pour ce module.
MeshHandle m_default_mesh_handle
Maillage par défaut du module.
VersionInfo m_version_info
Version du module.
void setUsed(bool v) override
Positionne le flag d'utilisation du module.
ISubDomain * subDomain() const override
Sous-domaine associé au module.
ISession * m_session
Sesion.
bool isGarbageCollected() const override
Indique si le module utilise un système de Garbage collection.
ISubDomain * m_sub_domain
sous-domaine
bool m_disabled
Etat d'activation du module.
VersionInfo versionInfo() const override
Version du module.
bool disabled() const override
Retourne l'état d'activation du module.
IMesh * defaultMesh() const override
Maillage par défaut pour ce module.
bool used() const override
Retourne l'état d'utilisation du module.
IAcceleratorMng * m_accelerator_mng
Gestionnaire des accélérateurs.
Interface du gestionnaire des accélérateurs.
Interface d'un module.
Definition IModule.h:39
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'une session d'exécution d'un cas.
Definition ISession.h:44
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Handle sur un maillage.
Definition MeshHandle.h:47
Informations pour construire un module.
Informations sur une version.
Definition VersionInfo.h:46
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-