Arcane
4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
VariableBuildInfo.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
/* VariableBuildInfo.h (C) 2000-2024 */
9
/* */
10
/* Information for building a 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
23
namespace
Arcane
24
{
25
26
/*---------------------------------------------------------------------------*/
27
/*---------------------------------------------------------------------------*/
28
29
class
IModule
;
30
class
ISubDomain
;
31
class
IMesh
;
32
class
IItemFamily
;
33
class
IVariableMng
;
34
class
VariablePrivate
;
35
class
IDataFactoryMng
;
36
37
/*---------------------------------------------------------------------------*/
38
/*---------------------------------------------------------------------------*/
39
43
class
ARCANE_CORE_EXPORT
VariableBuildInfo
44
{
45
public
:
46
47
// To access the default constructor.
48
friend
class
NullVariableBuildInfo;
49
// TEMPORARY To access _subDomain(). To be removed later.
50
friend
class
VariablePrivate;
51
52
private
:
53
55
struct
NullTag
56
{};
57
58
public
:
59
67
VariableBuildInfo
(
IModule
* m,
const
String
& name,
int
property = 0);
68
77
VariableBuildInfo
(
ISubDomain
* sub_domain,
const
String
& name,
int
property = 0);
78
87
VariableBuildInfo
(
IVariableMng
* variable_mng,
const
String
& name,
int
property = 0);
88
97
VariableBuildInfo
(
IMesh
* mesh,
const
String
& name,
int
property = 0);
98
107
VariableBuildInfo
(
const
MeshHandle
& mesh_handle,
const
String
& name,
int
property = 0);
108
117
VariableBuildInfo
(
IModule
* m,
const
String
& name,
118
const
String
& item_family_name,
int
property = 0);
119
129
VariableBuildInfo
(
IMesh
* mesh,
const
String
& name,
130
const
String
& item_family_name,
int
property = 0);
131
141
VariableBuildInfo
(
const
MeshHandle
& mesh_handle,
const
String
& name,
142
const
String
& item_family_name,
int
property = 0);
143
153
VariableBuildInfo
(
ISubDomain
* sd,
const
String
& name,
const
String
& mesh_name,
154
const
String
& item_family_name,
int
property = 0);
155
165
VariableBuildInfo
(
IVariableMng
* variable_mng,
const
String
& name,
const
String
& mesh_name,
166
const
String
& item_family_name,
int
property = 0);
167
176
VariableBuildInfo
(
IItemFamily
* family,
const
String
& name,
int
property = 0);
177
187
VariableBuildInfo
(
IModule
* m,
const
String
& name,
188
const
String
& item_family_name,
189
const
String
& item_group_name,
int
property = 0);
190
201
VariableBuildInfo
(
IMesh
* mesh,
const
String
& name,
202
const
String
& item_family_name,
203
const
String
& item_group_name,
int
property = 0);
204
215
VariableBuildInfo
(
const
MeshHandle
& mesh_handle,
const
String
& name,
216
const
String
& item_family_name,
217
const
String
& item_group_name,
int
property = 0);
218
229
VariableBuildInfo
(
ISubDomain
* sd,
const
String
& name,
230
const
String
& mesh_name,
231
const
String
& item_family_name,
232
const
String
& item_group_name,
int
property = 0);
233
244
VariableBuildInfo
(
IVariableMng
* variable_mng,
const
String
& name,
245
const
String
& mesh_name,
246
const
String
& item_family_name,
247
const
String
& item_group_name,
int
property = 0);
248
249
private
:
250
251
explicit
VariableBuildInfo
(
const
NullTag
&);
252
253
public
:
254
255
ARCCORE_DEPRECATED_2020(
"Do not use this method. Try to get ISubDomain from another way"
)
256
ISubDomain
* subDomain()
const
{
return
m_sub_domain
; }
257
258
public
:
259
260
IVariableMng
* variableMng()
const
;
261
IDataFactoryMng
* dataFactoryMng()
const
;
262
ITraceMng
* traceMng()
const
;
263
IModule
* module()
const
{
return
m_module; }
264
IMesh* mesh()
const
{
return
m_mesh_handle.mesh(); }
265
const
MeshHandle& meshHandle()
const
{
return
m_mesh_handle; }
266
const
String& name()
const
{
return
m_name; }
267
const
String& itemFamilyName()
const
{
return
m_item_family_name; }
268
const
String& itemGroupName()
const
{
return
m_item_group_name; }
269
const
String& meshName()
const
{
return
m_mesh_name; }
270
int
property()
const
{
return
m_property; }
271
bool
isNull()
const
{
return
m_is_null; }
272
273
private
:
274
275
ISubDomain
*
m_sub_domain
=
nullptr
;
276
IModule
*
m_module
=
nullptr
;
277
MeshHandle
m_mesh_handle
;
278
String
m_name
;
279
String
m_item_family_name
;
280
String
m_item_group_name
;
281
String
m_mesh_name
;
282
int
m_property
= 0;
283
bool
m_is_null =
false
;
284
285
private
:
286
287
void
_init();
288
ISubDomain
* _subDomain()
const
{
return
m_sub_domain
; }
289
};
290
291
/*---------------------------------------------------------------------------*/
292
/*---------------------------------------------------------------------------*/
293
299
class
ARCANE_CORE_EXPORT NullVariableBuildInfo
300
:
public
VariableBuildInfo
301
{
302
public
:
303
304
NullVariableBuildInfo()
305
:
VariableBuildInfo
(
NullTag
{})
306
{}
307
};
308
309
/*---------------------------------------------------------------------------*/
310
/*---------------------------------------------------------------------------*/
311
312
}
// End namespace Arcane
313
314
/*---------------------------------------------------------------------------*/
315
/*---------------------------------------------------------------------------*/
316
317
#endif
Arcane::IDataFactoryMng
Interface of the data factory manager.
Definition
IDataFactoryMng.h:41
Arcane::IItemFamily
Interface of an entity family.
Definition
IItemFamily.h:83
Arcane::IMesh
Definition
IMesh.h:60
Arcane::IModule
Interface of a module.
Definition
IModule.h:40
Arcane::ISubDomain
Interface of the subdomain manager.
Definition
ISubDomain.h:75
Arcane::ITraceMng
Trace manager interface.
Definition
arccore/src/trace/arccore/trace/ITraceMng.h:175
Arcane::IVariableMng
Variable manager interface.
Definition
IVariableMng.h:58
Arcane::MeshHandle
Handle on a mesh.
Definition
MeshHandle.h:48
Arcane::String
Unicode character string.
Definition
arccore/src/base/arccore/base/String.h:70
Arcane::VariableBuildInfo::m_item_group_name
String m_item_group_name
Supported entity group name.
Definition
VariableBuildInfo.h:280
Arcane::VariableBuildInfo::m_mesh_name
String m_mesh_name
Name of the mesh associated with the variable.
Definition
VariableBuildInfo.h:281
Arcane::VariableBuildInfo::VariableBuildInfo
VariableBuildInfo(IModule *m, const String &name, int property=0)
Constructs an initializer for a variable.
Definition
VariableBuildInfo.cc:46
Arcane::VariableBuildInfo::m_module
IModule * m_module
Module associated with the variable.
Definition
VariableBuildInfo.h:276
Arcane::VariableBuildInfo::m_mesh_handle
MeshHandle m_mesh_handle
Handle on the mesh.
Definition
VariableBuildInfo.h:277
Arcane::VariableBuildInfo::m_property
int m_property
Variable properties.
Definition
VariableBuildInfo.h:282
Arcane::VariableBuildInfo::m_item_family_name
String m_item_family_name
Entity family name.
Definition
VariableBuildInfo.h:279
Arcane::VariableBuildInfo::m_name
String m_name
Variable name.
Definition
VariableBuildInfo.h:278
Arcane::VariableBuildInfo::m_sub_domain
ISubDomain * m_sub_domain
Subdomain manager.
Definition
VariableBuildInfo.h:275
Arcane::VariablePrivate
Definition
Variable.cc:88
Arcane
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Definition
arcane/src/arcane/accelerator/AcceleratorGlobal.h:37
Arcane::VariableBuildInfo::NullTag
Tag for a null VariableBuildInfo.
Definition
VariableBuildInfo.h:56
arcane
core
VariableBuildInfo.h
Generated on
for Arcane by
1.16.1