Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
VariableTypeInfo.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/* VariableTypeInfo.h (C) 2000-2020 */
9/* */
10/* Informations caractérisants le type d'une variable. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_VARIABLETYPEINFO_H
13#define ARCANE_VARIABLETYPEINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Informations caractérisant le type d'une variable.
29 *
30 * Les instances de cette classes peuvent être utilisées dans les
31 * constructeurs statiques. Pour éviter tout problème cette classe ne doit
32 * pas utiliser d'allocation dynamique.
33 */
34class ARCANE_CORE_EXPORT VariableTypeInfo
35{
36 public:
37
38 constexpr VariableTypeInfo(eItemKind item_kind,eDataType data_type,Integer dimension,
39 Integer multi_tag,bool is_partial)
40 : m_item_kind(item_kind), m_data_type(data_type), m_dimension(dimension),
41 m_multi_tag(multi_tag), m_is_partial(is_partial){}
42
43 public:
44
45 //! Type d'entité de maillage
46 constexpr eItemKind itemKind() const { return m_item_kind; }
47 //! Dimension
48 constexpr Integer dimension() const { return m_dimension; }
49 //! Multi-tag
50 constexpr Integer multiTag() const { return m_multi_tag; }
51 //! Type des données de la variable
52 constexpr eDataType dataType() const { return m_data_type; }
53 //! Indique si la variable est partielle
54 constexpr bool isPartial() const { return m_is_partial; }
55
56 //! Nom complet du type de la variable
57 String fullName() const;
58
59 public:
60
61 //! Conteneur de donnée par défaut associé à ce type de variable
62 DataStorageTypeInfo _internalDefaultDataStorage() const;
63
64 private:
65
66 //! Genre des entités de maillage (peut être nul)
67 eItemKind m_item_kind;
68
69 //! Type des données de la variable
70 eDataType m_data_type;
71
72 //! Dimension de la variable
73 Integer m_dimension;
74
75 //! Tag indiquant si on utilise des tableaux de taille variables.
76 Integer m_multi_tag;
77
78 //! Indique si la variable est partielle.
79 bool m_is_partial;
80
81 private:
82
83 String _buildFullTypeName() const;
84};
85
86/*---------------------------------------------------------------------------*/
87/*---------------------------------------------------------------------------*/
88
89} // End namespace Arcane
90
91/*---------------------------------------------------------------------------*/
92/*---------------------------------------------------------------------------*/
93
94#endif
95
Informations de type pour un conteneur de données.
Informations caractérisant le type d'une variable.
constexpr bool isPartial() const
Indique si la variable est partielle.
constexpr Integer multiTag() const
Multi-tag.
constexpr Integer dimension() const
Dimension.
constexpr eItemKind itemKind() const
Type d'entité de maillage.
constexpr eDataType dataType() const
Type des données de la 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