Arcane  v3.16.8.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
VariableInfo.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* VariableInfo.h (C) 2000-2025 */
9/* */
10/* Infos caractérisant une variable. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_VARIABLEINFO_H
13#define ARCANE_CORE_VARIABLEINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18
19#include "arcane/core/datatype/DataStorageTypeInfo.h"
20
22#include "arcane/core/IVariable.h"
23#include "arcane/core/VariableTypeInfo.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28namespace Arcane
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33/*!
34 * \brief Infos caractérisant une variable.
35 */
36class ARCANE_CORE_EXPORT VariableInfo
37{
38 public:
39
40 ARCCORE_DEPRECATED_2020("Use overload with 'DataStorageTypeInfo' argument")
41 VariableInfo(const String& local_name,const String& item_family_name,
42 const String& item_group_name,
43 const String& mesh_name,eItemKind item_kind,
44 Integer dimension,Integer multi_tag,eDataType type);
45
46 VariableInfo(const String& local_name,const String& item_family_name,
47 const String& item_group_name,
48 const String& mesh_name,
49 const VariableTypeInfo& var_type_info,
50 const DataStorageTypeInfo& storage_info);
51
52 public:
53
54 //! Nom de la variable
55 const String& localName() const { return m_local_name; }
56 //! Nom de la famille d'entité à laquelle la variable est associée
57 const String& itemFamilyName() const { return m_item_family_name; }
58 //! Nom du groupe d'entité à laquelle la variable est associée
59 const String& itemGroupName() const { return m_item_group_name; }
60 //! Nom du maillage auquel la variable est associée
61 const String& meshName() const { return m_mesh_name; }
62 //! Nom complet de la variable (associé à la famille)
63 const String& fullName() const
64 {
65 if (m_full_name.null())
66 _computeFullName();
67 return m_full_name;
68 }
69 //! Type d'entité de maillage
70 eItemKind itemKind() const { return m_variable_type_info.itemKind(); }
71 //! Dimension
72 Integer dimension() const { return m_variable_type_info.dimension(); }
73 //! Multi-tag
74 Integer multiTag() const { return m_variable_type_info.multiTag(); }
75 //! Type des éléments
76 eDataType dataType() const { return m_variable_type_info.dataType(); }
77 //! Indique si la variable est partielle
78 bool isPartial() const { return m_variable_type_info.isPartial(); }
79
80 /*!
81 * \brief Si null, change itemGroupName() en le nom du groupe
82 * de toutes les entités de la famille.
83 */
84 void setDefaultItemGroupName();
85
86 //! Informations sur le type de la variable.
87 VariableTypeInfo variableTypeInfo() const { return m_variable_type_info; }
88 //! Informations sur le type de conteneur de la variable
89 DataStorageTypeInfo storageTypeInfo() const { return m_storage_type_info; }
90
91 public:
92
94 _internalGetStorageTypeInfo(eDataType data_type,Integer dimension,Integer multi_tag);
95
96 private:
97
98 //! Nom de la variable
99 String m_local_name;
100 //! Nom de la famille d'entité à laquelle la variable est associée
101 String m_item_family_name;
102 //! Nom du groupe d'entité à laquelle la variable est associée
103 String m_item_group_name;
104 //! Nom du maillage auquel la variable est associée
105 String m_mesh_name;
106 //! Nom complet de la variable (associé à la famille)
107 mutable String m_full_name;
108 //! Informations sur le type de la variable.
109 VariableTypeInfo m_variable_type_info;
110 //! Informations sur le conteneur de donnée de la variable
111 DataStorageTypeInfo m_storage_type_info;
112
113 private:
114
115 String _defaultFamilyName();
116 void _computeFullName() const;
117};
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121
122} // End namespace Arcane
123
124/*---------------------------------------------------------------------------*/
125/*---------------------------------------------------------------------------*/
126
127#endif
128
Déclarations des types généraux de Arcane.
Informations de type pour un conteneur de données.
Chaîne de caractères unicode.
bool isPartial() const
Indique si la variable est partielle.
const String & itemFamilyName() const
Nom de la famille d'entité à laquelle la variable est associée.
const String & localName() const
Nom de la variable.
VariableTypeInfo variableTypeInfo() const
Informations sur le type de la variable.
Integer multiTag() const
Multi-tag.
eItemKind itemKind() const
Type d'entité de maillage.
const String & itemGroupName() const
Nom du groupe d'entité à laquelle la variable est associée.
DataStorageTypeInfo storageTypeInfo() const
Informations sur le type de conteneur de la variable.
Integer dimension() const
Dimension.
eDataType dataType() const
Type des éléments.
const String & meshName() const
Nom du maillage auquel la variable est associée.
const String & fullName() const
Nom complet de la variable (associé à la famille)
Informations caractérisant le type d'une variable.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
eItemKind
Genre d'entité de maillage.
eDataType
Type d'une donnée.
Definition DataTypes.h:39