Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
VariableFactory.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/* VariableFactory.h C) 2000-2020 */
9/* */
10/* Fabrique d'une variable d'un type donné. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_VARIABLEFACTORY_H
13#define ARCANE_VARIABLEFACTORY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18
19#include "arcane/IVariableFactory.h"
20#include "arcane/VariableTypeInfo.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30/*!
31 * \internal
32 * \brief Enregistreur d'une fabrique de variables.
33 */
35: public IVariableFactory
36{
37 public:
38
39 /*!
40 * \brief Crée une fabrique une variable.
41 *
42 * \param func fonction créant la variable
43 * \param item_kind genre d'entité de la variable
44 * \param data_type type de donnée de la variable
45 * \param dimension dimension de la variable
46 * \param multi_tag tag indiquant s'il s'agit d'un tableau à taille multiple.
47 * \param is_partial indique s'il s'agit d'une variable partielle.
48 */
49 ARCCORE_DEPRECATED_2020("Use overload with 'VariableTypeInfo' argument")
51 eItemKind item_kind,Integer dimension,Integer multi_tag,bool is_partial);
52 VariableFactory(VariableFactoryFunc func,const VariableTypeInfo& var_type_info);
53
54 public:
55
56 VariableRef* createVariable(const VariableBuildInfo& name) override;
57 eItemKind itemKind() const override { return m_variable_type_info.itemKind(); }
58 eDataType dataType() const override { return m_variable_type_info.dataType(); }
59 Integer dimension() const override { return m_variable_type_info.dimension(); }
60 Integer multiTag() const override { return m_variable_type_info.multiTag(); }
61 bool isPartial() const { return m_variable_type_info.isPartial(); }
62 const String& fullTypeName() const override { return m_full_type_name; }
63 VariableTypeInfo variableTypeInfo() const override { return m_variable_type_info; }
64
65 private:
66
67 //! Fonction de création du IVariableFactoryFactory
68 VariableFactoryFunc m_function;
69
70 //! Informations sur le type de la variable
71 VariableTypeInfo m_variable_type_info;
72
73 //! Nom complet du type de la variable
74 String m_full_type_name;
75};
76
77/*---------------------------------------------------------------------------*/
78/*---------------------------------------------------------------------------*/
79
80} // End namespace Arcane
81
82/*---------------------------------------------------------------------------*/
83/*---------------------------------------------------------------------------*/
84
85#endif
VariableFactoryVariableRefCreateFunc VariableFactoryFunc
Type de la fonction créant la variable.
Paramètres nécessaires à la construction d'une variable.
VariableTypeInfo variableTypeInfo() const override
Informations sur le type de la variable.
Integer multiTag() const override
Tag multi.
eItemKind itemKind() const override
Genre des variables de données de la variable créée par cette fabrique.
VariableRef * createVariable(const VariableBuildInfo &name) override
Créé une variable avec la infos build_info et retourne sa référence.
Integer dimension() const override
Dimension de la variable créée par cette fabrique.
eDataType dataType() const override
Type de données de la variable créée par cette fabrique.
const String & fullTypeName() const override
Nom complet du type de la variable.
Référence à une variable.
Definition VariableRef.h:56
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