Arcane  v3.14.10.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-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/* VariableInfo.h (C) 2000-2020 */
9/* */
10/* Infos caractérisant une variable. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_VARIABLEINFO_H
13#define ARCANE_VARIABLEINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18
19#include "arcane/datatype/DataStorageTypeInfo.h"
20
21#include "arcane/ArcaneTypes.h"
22#include "arcane/IVariable.h"
23#include "arcane/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
Informations de type pour un conteneur de données.
Infos caractérisant une variable.
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.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eItemKind
Genre d'entité de maillage.
eDataType
Type d'une donnée.
Definition DataTypes.h:39