12#ifndef ARCANE_CASEOPTIONEXTENDED_H
13#define ARCANE_CASEOPTIONEXTENDED_H
17#include "arcane/utils/Array.h"
19#include "arcane/core/CaseOptionSimple.h"
33class ARCANE_CORE_EXPORT CaseOptionExtended
34:
public CaseOptionSimple
43 void print(
const String& lang,std::ostream& o)
const override;
54 void setDefaultValue(
const String& def_value);
58 virtual bool _tryToConvert(
const String& s) =0;
60 void _search(
bool is_phase1)
override;
61 bool _allowPhysicalUnit()
override {
return false; }
63 String _typeName()
const {
return m_type_name; }
90class CaseOptionExtendedT
91:
public CaseOptionExtended
96 : CaseOptionExtended(cob,type_name) {}
101 operator const T&()
const {
return value(); }
106 ARCANE_CASEOPTION_CHECK_IS_INITIALIZED;
116 ARCANE_CASEOPTION_CHECK_IS_INITIALIZED;
122 virtual bool _tryToConvert(
const String& s)
127 return _caseOptionConvert(*
this,s,
m_value);
142class ARCANE_CORE_EXPORT CaseOptionMultiExtended
143:
public CaseOptionBase
149 ~CaseOptionMultiExtended() {}
153 void print(
const String& lang,std::ostream& o)
const override;
161 virtual void _allocate(
Integer size) =0;
162 virtual bool _allowPhysicalUnit() {
return false; }
163 virtual Integer _nbElem()
const =0;
164 String _typeName()
const {
return m_type_name; }
165 void _search(
bool is_phase1)
override;
184class CaseOptionMultiExtendedT
185:
public CaseOptionMultiExtended
195 : CaseOptionMultiExtended(cob,type_name) {}
202 bool _tryToConvert(
const String& s,
Integer pos)
override
208 return _caseOptionConvert(*
this,s,value);
212 m_values.resize(
size);
214 *view = m_values.view();
217 virtual Integer _nbElem()
const override {
return m_values.size(); }
221 UniqueArray<T> m_values;
constexpr ArrayView() noexcept
Construit une vue vide.
constexpr reference operator[](Integer i)
i-ème élément du tableau.
constexpr Integer size() const noexcept
Retourne la taille du tableau.
Informations pour construire une option de jeu de données.
const T & value() const
Valeur de l'option.
const T & valueIfPresentOrArgument(const T &arg_value)
Retourne la valeur de l'option si isPresent()==true ou sinon arg_value.
const T & operator()() const
Valeur de l'option.
T m_value
Valeur de l'option.
void updateFromFunction(Real, Integer) override
Met à jour la valeur de l'option à partir d'une fonction.
String m_type_name
Nom du type de l'option.
ICaseFunction * function() const override
Retourne la fonction liée à cette option ou nullptr s'il n'y en a pas.
String m_value
Valeur de l'option sous forme de chaîne unicode.
void print(const String &lang, std::ostream &o) const override
Imprime la valeur de l'option dans le langage lang,sur le flot o.
Option du jeu de donnée de type liste de types étendus.
ICaseFunction * function() const override
Retourne la fonction liée à cette option ou nullptr s'il n'y en a pas.
String m_type_name
Nom du type de l'option.
void updateFromFunction(Real, Integer) override
Met à jour la valeur de l'option à partir d'une fonction.
UniqueArray< String > m_values
Valeurs sous forme de chaînes unicodes.
void print(const String &lang, std::ostream &o) const override
Imprime la valeur de l'option dans le langage lang,sur le flot o.
bool isPresent() const
Retourne true si l'option est présente.
Interface du visiteur pour une option du jeu de données.
Interface d'une fonction du jeu de données.
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 -*-
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.