Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
VariableBuildInfo.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* VariableBuildInfo.h (C) 2000-2024 */
9/* */
10/* Informations pour construire une variable. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_VARIABLEBUILDINFO_H
13#define ARCANE_VARIABLEBUILDINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18#include "arcane/core/MeshHandle.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29class IModule;
30class ISubDomain;
31class IMesh;
32class IItemFamily;
33class IVariableMng;
34class VariablePrivate;
35class IDataFactoryMng;
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
42class ARCANE_CORE_EXPORT VariableBuildInfo
43{
44 public:
45
46 // Pour accéder au constructeur par défaut.
47 friend class NullVariableBuildInfo;
48 // TEMPORAIRE Pour accéder à _subDomain(). A supprimer par la suite.
49 friend class VariablePrivate;
50
51 private:
52
54 struct NullTag
55 {};
56
57 public:
58
66 VariableBuildInfo(IModule* m,const String& name,int property=0);
67
76 VariableBuildInfo(ISubDomain* sub_domain,const String& name,int property=0);
77
86 VariableBuildInfo(IVariableMng* variable_mng,const String& name,int property=0);
87
96 VariableBuildInfo(IMesh* mesh,const String& name,int property=0);
97
106 VariableBuildInfo(const MeshHandle& mesh_handle,const String& name,int property=0);
107
116 VariableBuildInfo(IModule* m,const String& name,
117 const String& item_family_name,int property=0);
118
128 VariableBuildInfo(IMesh* mesh,const String& name,
129 const String& item_family_name,int property=0);
130
141 const String& item_family_name,int property=0);
142
153 const String& item_family_name,int property=0);
154
165 const String& item_family_name,int property=0);
166
175 VariableBuildInfo(IItemFamily* family,const String& name,int property=0);
176
186 VariableBuildInfo(IModule* m,const String& name,
188 const String& item_group_name,int property=0);
189
200 VariableBuildInfo(IMesh* mesh,const String& name,
202 const String& item_group_name,int property=0);
203
216 const String& item_group_name,int property=0);
217
229 const String& mesh_name,
231 const String& item_group_name,int property=0);
232
244 const String& mesh_name,
246 const String& item_group_name,int property=0);
247
248 private:
249
250 explicit VariableBuildInfo(const NullTag&);
251
252 public:
253
254 ARCCORE_DEPRECATED_2020("Do not use this method. Try to get ISubDomain from another way")
255 ISubDomain* subDomain() const { return m_sub_domain; }
256
257 public:
258
259 IVariableMng* variableMng() const;
260 IDataFactoryMng* dataFactoryMng() const;
261 ITraceMng* traceMng() const;
262 IModule* module() const { return m_module; }
263 IMesh* mesh() const { return m_mesh_handle.mesh(); }
264 const MeshHandle& meshHandle() const { return m_mesh_handle; }
265 const String& name() const { return m_name; }
266 const String& itemFamilyName() const { return m_item_family_name; }
267 const String& itemGroupName() const { return m_item_group_name; }
268 const String& meshName() const { return m_mesh_name; }
269 int property() const { return m_property; }
270 bool isNull() const { return m_is_null; }
271
272 private:
273
274 ISubDomain* m_sub_domain = nullptr;
275 IModule* m_module = nullptr;
281 int m_property = 0;
282 bool m_is_null = false;
283
284 private:
285
286 void _init();
287 ISubDomain* _subDomain() const { return m_sub_domain; }
288};
289
290/*---------------------------------------------------------------------------*/
291/*---------------------------------------------------------------------------*/
298class ARCANE_CORE_EXPORT NullVariableBuildInfo
299: public VariableBuildInfo
300{
301 public:
302
305 {}
306};
307
308/*---------------------------------------------------------------------------*/
309/*---------------------------------------------------------------------------*/
310
311} // End namespace Arcane
312
313/*---------------------------------------------------------------------------*/
314/*---------------------------------------------------------------------------*/
315
316#endif
317
Interface du gestionnaire de fabrique d'une donnée.
Interface d'une famille d'entités.
Interface d'un module.
Definition IModule.h:39
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface du gestionnaire de variables.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Handle sur un maillage.
Definition MeshHandle.h:47
Constructeur pour une variable nulle.
Paramètres nécessaires à la construction d'une variable.
String m_item_group_name
Nom du groupe d'entité support.
String m_mesh_name
Nom du maillage associé à la variable.
MeshHandle m_mesh_handle
Handle sur le maillage.
String m_item_family_name
Nom de la famille d'entité
String m_name
Nom de la variable.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Tag pour un VariableBuildInfo nul.