Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ModuleBuildInfo.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* ModuleBuildInfo.h (C) 2000-2023 */
9/* */
10/* Paramètres pour construire un module. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MODULEBUILDINFO_H
13#define ARCANE_MODULEBUILDINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18#include "arcane/MeshHandle.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \brief Informations pour construire un module.
30 *
31 * \a ModuleBuildInfo est usuellement utilisé via \a BasicModule
32 * (module basique) et \a AbstractModule (tout module) pour la
33 * création des différents modules.
34 *
35 * \ingroup Module
36 */
37class ARCANE_CORE_EXPORT ModuleBuildInfo
38{
39 public:
40
41 /*!
42 * \brief Constructeur à partir d'un sous-domaine, un maillage et un
43 * nom d'implémentation de module.
44 *
45 * \deprecated Utiliser la surcharge qui prend un MeshHandle à la place.
46 */
47 ARCANE_DEPRECATED_REASON("Y2022: use overload with meshHandle() instead of mesh")
48 ModuleBuildInfo(ISubDomain* sd, IMesh* mesh, const String& name);
49
50 public:
51
52 //! Constructeur à partir d'un sous-domaine, un maillage et un nom d'implémentation de module
53 ModuleBuildInfo(ISubDomain* sd, const MeshHandle& mesh_handle, const String& name);
54
55 /*!
56 * \brief Constructeur à partir d'un sous-domaine et un nom d'implémentation de module
57 *
58 * Le maillage considéré est alors le maillage par défaut \a ISubDomain::defautMesh()
59 */
60 ModuleBuildInfo(ISubDomain* sd, const String& name);
61
62 //! Destructeur
63 virtual ~ModuleBuildInfo() {}
64
65 public:
66
67 //! Accès au sous-domaine associé
68 ISubDomain* subDomain() const { return m_sub_domain; }
69
70 //! Accès au maillage associé
71 const MeshHandle& meshHandle() const { return m_mesh_handle; }
72
73 //! Nom de l'implémentation recherchée
74 const String& name() const { return m_name; }
75
76 public:
77
78 /*!
79 * \brief Accès au maillage associé.
80 *
81 * Le maillage n'existe pas toujours si le jeu de donnée n'a pas
82 * encore été lu.
83 *
84 * \deprecated Il faut utiliser meshHandle() à la place.
85 */
86 IMesh* mesh() const { return m_mesh_handle.mesh(); }
87
88 private:
89
90 //! Sous-domaine associé
91 ISubDomain* m_sub_domain;
92
93 //! Maillage associé
94 MeshHandle m_mesh_handle;
95
96 //! Nom de l'implémentation recherchée
97 String m_name;
98};
99
100/*---------------------------------------------------------------------------*/
101/*---------------------------------------------------------------------------*/
102
103} // End namespace Arcane
104
105/*---------------------------------------------------------------------------*/
106/*---------------------------------------------------------------------------*/
107
108#endif
109
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Handle sur un maillage.
Definition MeshHandle.h:47
Informations pour construire un module.
const String & name() const
Nom de l'implémentation recherchée.
virtual ~ModuleBuildInfo()
Destructeur.
IMesh * mesh() const
Accès au maillage associé.
ISubDomain * subDomain() const
Accès au sous-domaine associé
const MeshHandle & meshHandle() const
Accès au maillage associé
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-