12#ifndef ARCANE_CASEOPTIONENUM_H
13#define ARCANE_CASEOPTIONENUM_H
17#include "arcane/core/CaseOptionSimple.h"
61 void addAlternativeNodeName(
const String& lang,
const String& tname);
75class ARCANE_CORE_EXPORT CaseOptionEnumValue
80 CaseOptionEnumValue(
const String&
name,
int value);
82 CaseOptionEnumValue(
const CaseOptionEnumValue& rhs);
83 ~CaseOptionEnumValue();
87 int value()
const {
return m_value; }
75class ARCANE_CORE_EXPORT CaseOptionEnumValue {
…};
159class ARCANE_CORE_EXPORT CaseOptionEnum
160:
public CaseOptionSimple
169 virtual void print(
const String& lang, std::ostream& o)
const;
172 _updateFromFunction(current_time, current_iteration);
177 m_enum_values->addEnumValue(value, do_clone);
179 CaseOptionEnumValues* enumValues()
const {
return m_enum_values; }
181 virtual void visit(ICaseDocumentVisitor* visitor)
const;
183 int enumValueAsInt()
const {
return _optionValue(); }
188 virtual void _search(
bool is_phase1);
189 virtual bool _allowPhysicalUnit() {
return false; }
198 void _setEnumDefaultValue(
int def_value);
204 void _updateFromFunction(
Real current_time,
Integer current_iteration);
159class ARCANE_CORE_EXPORT CaseOptionEnum {
…};
215template <
class EnumType>
217:
public CaseOptionEnum
222 : CaseOptionEnum(cob, type_name)
223 , m_value(EnumType())
231 ARCANE_CASEOPTION_CHECK_IS_INITIALIZED;
236 operator EnumType()
const {
return value(); }
249 _setEnumDefaultValue(
static_cast<int>(def_value));
255 ARCANE_CASEOPTION_CHECK_IS_INITIALIZED;
256 return isPresent() ? m_value : arg_value;
268 m_value =
static_cast<EnumType
>(i);
272 return static_cast<int>(m_value);
216class CaseOptionEnumT {
…};
282class ARCANE_CORE_EXPORT CaseOptionMultiEnum
283:
public CaseOptionBase
289 ~CaseOptionMultiEnum();
293 virtual void print(
const String& lang, std::ostream& o)
const;
299 m_enum_values->addEnumValue(value, do_clone);
302 CaseOptionEnumValues* enumValues()
const {
return m_enum_values; }
304 virtual void visit(ICaseDocumentVisitor* visitor)
const;
308 virtual void _search(
bool is_phase1);
309 virtual bool _allowPhysicalUnit() {
return false; }
282class ARCANE_CORE_EXPORT CaseOptionMultiEnum {
…};
335class CaseOptionMultiEnumT
336:
public CaseOptionMultiEnum
346 : CaseOptionMultiEnum(cob, type_name)
353 m_values.resize(
size);
355 *view = m_values.view();
363 (*this)[index] =
static_cast<T
>(v);
367 return static_cast<int>((*this)[index]);
335class CaseOptionMultiEnumT {
…};
constexpr ArrayView() noexcept
Construit une vue vide.
constexpr Integer size() const noexcept
Retourne la taille du tableau.
EnumType value() const
Valeur de l'option.
EnumType operator()() const
Valeur de l'option.
void setDefaultValue(EnumType def_value)
Positionne la valeur par défaut de l'option.
virtual void _setOptionValue(int i)
Positionne à v la valeur de l'option.
EnumType valueIfPresentOrArgument(EnumType arg_value)
Retourne la valeur de l'option si isPresent()==true ou sinon arg_value.
virtual int _optionValue() const
Retourne la valeur de l'option.
String nameOfValue(int value, const String &lang) const
Retourne le nom de correspondant à la valeur value pour le langage lang.
CaseOptionEnumValues()
Contruit l'instance.
UniqueArray< CaseOptionEnumValue * > EnumValueList
Type de la liste des valeurs.
void getValidNames(const String &lang, StringArray &names) const
Remplit names avec les noms valides pour la langue lang.
bool valueOfName(const String &name, const String &lang, int &value) const
Retourne la valeur de l'énumération ayant le nom name.
Integer nbEnumValue() const
Retourne le nombre de valeurs de l'énumération.
CaseOptionEnumValue * enumValue(Integer index) const
Retourne la ième valeur.
void addEnumValue(CaseOptionEnumValue *value, bool do_clone)
Ajoute la valeur d'énumération value. L'instance devient propriétaire de value qui est détruite lorsq...
virtual void print(const String &lang, std::ostream &o) const
Imprime la valeur de l'option dans le langage lang,sur le flot o.
virtual void _setOptionValue(int v)=0
Positionne à v la valeur de l'option.
virtual void updateFromFunction(Real current_time, Integer current_iteration)
Met à jour la valeur de l'option à partir d'une fonction.
virtual int _optionValue() const =0
Retourne la valeur de l'option.
virtual void _setOptionValue(Integer index, int v)
virtual Integer _nbElem() const
Retourne le nombre d'éléments du tableau.
virtual int _optionValue(Integer index) const
Retourne la valeur de l'énumération pour l'indice index.
virtual void _allocate(Integer size)
Alloue un tableau pour size éléments.
virtual Integer _nbElem() const =0
Retourne le nombre d'éléments du tableau.
virtual void print(const String &lang, std::ostream &o) const
Imprime la valeur de l'option dans le langage lang,sur le flot o.
virtual void _allocate(Integer size)=0
Alloue un tableau pour size éléments.
virtual ICaseFunction * function() const
Retourne la fonction liée à cette option ou nullptr s'il n'y en a pas.
virtual void updateFromFunction(Real, Integer)
Met à jour la valeur de l'option à partir d'une fonction.
virtual int _optionValue(Integer index) const =0
Retourne la valeur de l'énumération pour l'indice index.
virtual void _setOptionValue(Integer index, int v)=0
String name(const String &lang) const
retourne le nom de l'option dans le langage lang. Si aucune traduction n'est disponible dans le langa...
CaseOptionName(const String &true_name)
Construit une option de nom true_name.
String trueName() const
Retourne le vrai nom (non traduit) de l'option.
bool isPresent() const
Retourne true si l'option est présente.
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Array< String > StringArray
Tableau dynamique à une dimension de chaînes de caractères.
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.