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
39 : CaseOptionSimple(cob), m_type_name(type_name) {}
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;
117 return isPresent() ? m_value : arg_value;
122 virtual bool _tryToConvert(
const String& s)
127 return _caseOptionConvert(*
this,s,m_value);
142class ARCANE_CORE_EXPORT CaseOptionMultiExtended
143:
public CaseOptionBase
148 : CaseOptionBase(cob), m_type_name(type_name) {}
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;
170 UniqueArray<String> m_values;
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.
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.
void updateFromFunction(Real, Integer) override
Met à jour la valeur de l'option à partir d'une fonction.
ICaseFunction * function() const override
Retourne la fonction liée à cette option ou nullptr s'il n'y en a pas.
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.
void updateFromFunction(Real, Integer) override
Met à jour la valeur de l'option à partir d'une fonction.
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.
Chaîne de caractères unicode.
-*- 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.