Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IVariableFactory.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/* IVariableFactory.h C) 2000-2020 */
9/* */
10/* Interface d'une fabrique d'une variable d'un type donné. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IVARIABLEFACTORY_H
13#define ARCANE_IVARIABLEFACTORY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \internal
29 * \brief Interface d'une fabrique de variables.
30 *
31 L'instance permet une créér une variable en fonction de son type de
32 données (dataType()), son genre d'entité (itemKind()), sa dimension
33 (dimension()) et son tag s'il s'agit d'un tableau multiple (multiTag()).
34
35 L'opération fullTypeName() contient le nom complet du type, obtenu
36 de la manière suivante: dataType().itemKind().dimension().multiTag. Par exemple,
37 pour une variable scalaire réelle aux mailles, le type complet est
38 le suivant: \a "Real.Cell.0.0".
39 */
41{
42 public:
43
44 //! Type de la fonction créant la variable
45 using VariableFactoryFunc = VariableFactoryVariableRefCreateFunc;
46
47 public:
48
49 virtual ~IVariableFactory() = default;
50
51 public:
52
53 //! Créé une variable avec la infos \a build_info et retourne sa référence.
54 virtual VariableRef* createVariable(const VariableBuildInfo& build_info) =0;
55
56 public:
57
58 //! Genre des variables de données de la variable créée par cette fabrique
59 virtual eItemKind itemKind() const =0;
60
61 //! Type de données de la variable créée par cette fabrique
62 virtual eDataType dataType() const =0;
63
64 //! Dimension de la variable créée par cette fabrique
65 virtual Integer dimension() const =0;
66
67 //! Tag multi.
68 virtual Integer multiTag() const =0;
69
70 //! Nom complet du type de la variable
71 virtual const String& fullTypeName() const =0;
72
73 public:
74
75 //! Informations sur le type de la variable
77};
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82} // End namespace Arcane
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
86
87#endif
88
virtual eItemKind itemKind() const =0
Genre des variables de données de la variable créée par cette fabrique.
VariableFactoryVariableRefCreateFunc VariableFactoryFunc
Type de la fonction créant la variable.
virtual Integer multiTag() const =0
Tag multi.
virtual VariableRef * createVariable(const VariableBuildInfo &build_info)=0
Créé une variable avec la infos build_info et retourne sa référence.
virtual VariableTypeInfo variableTypeInfo() const =0
Informations sur le type de la variable.
virtual eDataType dataType() const =0
Type de données de la variable créée par cette fabrique.
virtual const String & fullTypeName() const =0
Nom complet du type de la variable.
virtual Integer dimension() const =0
Dimension de la variable créée par cette fabrique.
Paramètres nécessaires à la construction d'une variable.
Référence à une variable.
Definition VariableRef.h:56
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