Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
CaseFunction2.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* CaseFunction2.h (C) 2000-2023 */
9/* */
10/* Fonction du jeu de données avec type de valeur explicite. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_CASEFUNCTION2_H
13#define ARCANE_CORE_CASEFUNCTION2_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Real3.h"
18#include "arcane/core/CaseFunction.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \internal
30 * \brief Implémentation de CaseFunction permettant de retourner directement
31 * la valeur associée à un paramètre sans passer par une référence.
32 *
33 * Cela est principalement utilisé pour simplifier les extensions C# en évitant
34 * les différentes surcharges de value().
35 *
36 * Pour utiliser cette classe, il faut implémenter les méthodes 'valueAs*'
37 * pour les deux types d'argument \a Integer et \a Real et pour les
38 * différents types de retour possibles.
39 */
40class ARCANE_CORE_EXPORT CaseFunction2
41: public CaseFunction
42{
43 public:
44
45 //! Construit une fonction du jeu de données.
47 : CaseFunction(cfbi)
48 {}
49
50 protected:
51
52 void value(Real param, Real& v) const override
53 {
54 v = valueAsReal(param);
55 }
56 void value(Real param, Integer& v) const override
57 {
58 v = valueAsInteger(param);
59 }
60 void value(Real param, bool& v) const override
61 {
62 v = valueAsBool(param);
63 }
64 void value(Real param, String& v) const override
65 {
66 v = valueAsString(param);
67 }
68 void value(Real param, Real3& v) const override
69 {
70 v = valueAsReal3(param);
71 }
72 void value(Integer param, Real& v) const override
73 {
74 v = valueAsReal(param);
75 }
76 void value(Integer param, Integer& v) const override
77 {
78 v = valueAsInteger(param);
79 }
80 void value(Integer param, bool& v) const override
81 {
82 v = valueAsBool(param);
83 }
84 void value(Integer param, String& v) const override
85 {
86 v = valueAsString(param);
87 }
88 void value(Integer param, Real3& v) const override
89 {
90 v = valueAsReal3(param);
91 }
92
93 public:
94
95 virtual Real valueAsReal(Real param) const = 0;
96 virtual Integer valueAsInteger(Real param) const = 0;
97 virtual bool valueAsBool(Real param) const = 0;
98 virtual String valueAsString(Real param) const = 0;
99 virtual Real3 valueAsReal3(Real param) const = 0;
100
101 virtual Real valueAsReal(Integer param) const = 0;
102 virtual Integer valueAsInteger(Integer param) const = 0;
103 virtual bool valueAsBool(Integer param) const = 0;
104 virtual String valueAsString(Integer param) const = 0;
105 virtual Real3 valueAsReal3(Integer param) const = 0;
106};
107
108/*---------------------------------------------------------------------------*/
109/*---------------------------------------------------------------------------*/
110
111} // namespace Arcane
112
113/*---------------------------------------------------------------------------*/
114/*---------------------------------------------------------------------------*/
115
116#endif
void value(Integer param, Real3 &v) const override
Valeur v de l'option pour le paramètre param.
void value(Integer param, String &v) const override
Valeur v de l'option pour le paramètre param.
void value(Real param, String &v) const override
Valeur v de l'option pour le paramètre param.
void value(Real param, Integer &v) const override
Valeur v de l'option pour le paramètre param.
void value(Real param, Real3 &v) const override
Valeur v de l'option pour le paramètre param.
void value(Real param, bool &v) const override
Valeur v de l'option pour le paramètre param.
void value(Real param, Real &v) const override
Valeur v de l'option pour le paramètre param.
CaseFunction2(const CaseFunctionBuildInfo &cfbi)
Construit une fonction du jeu de données.
void value(Integer param, Real &v) const override
Valeur v de l'option pour le paramètre param.
void value(Integer param, Integer &v) const override
Valeur v de l'option pour le paramètre param.
Informations pour construire une instance de CaseFunction.
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-