12#ifndef ARCANE_CASEOPTIONSIMPLE_H 
   13#define ARCANE_CASEOPTIONSIMPLE_H 
   17#include "arcane/core/ICaseOptions.h" 
   18#include "arcane/core/CaseOptionBase.h" 
   34#define ARCANE_CASEOPTION_CHECK_IS_INITIALIZED _checkIsInitialized() 
   36#define ARCANE_CASEOPTION_CHECK_IS_INITIALIZED 
   42template<
typename Type>
 
   46  using ContainerType = 
Type;
 
   47  using ReferenceType = 
Type&;
 
   48  using ConstReferenceType = 
const Type&;
 
 
   62template<
typename Type>
 
   79class ARCANE_CORE_EXPORT CaseOptionSimple
 
   80: 
public CaseOptionBase
 
  124  bool hasChangedSinceLastIteration() 
const;
 
  126  String xpathFullName() 
const;
 
  131  String defaultPhysicalUnit() 
const;
 
  133  String physicalUnit() 
const;
 
  161  void _search(
bool is_phase1) 
override;
 
  162  virtual bool _allowPhysicalUnit() =0;
 
  163  void _setChangedSinceLastIteration(
bool has_changed);
 
  164  void _searchFunction(
XmlNode& velem);
 
  165  void _setPhysicalUnit(
const String& value);
 
  166  void _setHasValidValue(
bool v) { m_has_valid_value = v; }
 
  167  XmlNode _element()
 const { 
return m_element; }
 
  169  static String _convertFunctionRealToString(ICaseFunction* func,Real t);
 
  170  static String _convertFunctionIntegerToString(ICaseFunction* func,Integer t);
 
  179  bool m_changed_since_last_iteration = 
false;
 
  180  bool m_is_optional = 
false;
 
  181  bool m_has_valid_value = 
false;
 
  182  String m_default_physical_unit;
 
 
  205class CaseOptionSimpleT
 
  206: 
public CaseOptionSimple
 
  210  typedef CaseOptionSimpleT<T> ThatClass;
 
  212  typedef typename CaseOptionTraitsT<T>::ContainerType 
Type; 
 
  223  ARCANE_CORE_EXPORT 
virtual void print(
const String& lang,std::ostream& o) 
const;
 
  228    ARCANE_CASEOPTION_CHECK_IS_INITIALIZED;
 
 
  246  operator ThatClass*() { 
return this; }
 
  247  operator const ThatClass*() 
const { 
return this; }
 
  248  const ThatClass* operator->()
 const { 
return this; }
 
  249  static Real castTo__Arcane_Real(
const ThatClass& v)
 
  280    ARCANE_CASEOPTION_CHECK_IS_INITIALIZED;
 
 
  286  ARCANE_CORE_EXPORT 
virtual void _search(
bool is_phase1);
 
  287  ARCANE_CORE_EXPORT 
virtual bool _allowPhysicalUnit();
 
 
  298class ARCANE_CORE_EXPORT CaseOptionMultiSimple
 
  299: 
public CaseOptionBase
 
  303  : CaseOptionBase(cob){}
 
 
  318class CaseOptionMultiSimpleT
 
  319: 
public CaseOptionMultiSimple
 
  320#ifdef ARCANE_HAS_PRIVATE_CASEOPTIONSMULTISIMPLE_BASE_CLASS 
  329  using Type = 
typename CaseOptionTraitsT<T>::ContainerType;
 
  330  using ReferenceType = 
typename CaseOptionTraitsT<T>::ReferenceType;
 
  331  using ConstReferenceType = 
typename CaseOptionTraitsT<T>::ConstReferenceType;
 
  341  ARCANE_CORE_EXPORT ~CaseOptionMultiSimpleT();
 
  345  ARCCORE_DEPRECATED_2021(
"Use view() instead")
 
  350  ARCCORE_DEPRECATED_2021(
"Use view() instead")
 
  357  ARCCORE_DEPRECATED_2021(
"Use view() instead")
 
  361  ARCCORE_DEPRECATED_2021(
"Use view() instead")
 
  376  ReferenceType operator[](
Integer i) { 
return m_view[i]; }
 
  380  ARCANE_CORE_EXPORT 
void print(
const String& lang,std::ostream& o) 
const override;
 
  385  const T& value(
Integer index)
 const { 
return this->operator[](index); }
 
  387  ARCANE_CORE_EXPORT 
void visit(ICaseDocumentVisitor* visitor) 
const override;
 
  388  bool isPresent()
 const { 
return !m_view.empty(); }
 
  392  void _search(
bool is_phase1) 
override;
 
  393  virtual bool _allowPhysicalUnit();
 
 
Vue modifiable d'un tableau d'un type T.
 
constexpr ArrayView() noexcept
Construit une vue vide.
 
constexpr Integer size() const noexcept
Retourne la taille du tableau.
 
Tableau d'items de types quelconques.
 
Informations pour construire une option de jeu de données.
 
typename CaseOptionTraitsT< T >::ConstArrayViewType ConstArrayViewType
Type de la vue constante sur les valeurs de l'option.
 
ConstArrayViewType view() const
Vue constante sur les éléments de l'option.
 
typename CaseOptionTraitsT< T >::ContainerType Type
Type de la valeur de l'option.
 
typename CaseOptionTraitsT< T >::ArrayViewType ArrayViewType
Type de la vue sur les valeurs de l'option.
 
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.
 
ICaseFunction * function() const override
Retourne la fonction liée à cette option ou nullptr s'il n'y en a pas.
 
void visit(ICaseDocumentVisitor *visitor) const override
Applique le visiteur sur cette option.
 
void _search(bool is_phase1) override
Cherche la valeur de l'option dans le jeu de donnée.
 
ArrayViewType view()
Vue sur les éléments de l'option.
 
Option du jeu de données de type simple (réel, entier, booléen, ...)
 
const Type & valueIfPresentOrArgument(const Type &arg_value)
Retourne la valeur de l'option si isPresent()==true ou sinon arg_value.
 
virtual void _search(bool is_phase1)
Cherche la valeur de l'option dans le jeu de données.
 
ARCANE_DEPRECATED Type operator()(Real t) const
Retourne la valeur de l'option pour le paramètre réel t.
 
Type valueAtParameter(Real t) const
Retourne la valeur de l'option pour le paramètre réel t.
 
CaseOptionTraitsT< T >::ContainerType Type
Type de l'option.
 
virtual void print(const String &lang, std::ostream &o) const
Imprime la valeur de l'option dans le langage lang,sur le flot o.
 
Type valueAtParameter(Integer t) const
Retourne la valeur de l'option pour le paramètre entier t.
 
const Type & value() const
Retourne la valeur de l'option.
 
const Type & operator()() const
Retourne la valeur de l'option.
 
ARCANE_DEPRECATED Type operator()(Integer t) const
Retourne la valeur de l'option pour le paramètre entier t.
 
virtual void updateFromFunction(Real current_time, Integer current_iteration)
 
void setDefaultValue(const Type &def_value)
Positionne la valeur par défaut de l'option.
 
IStandardFunction * m_standard_function
 
XmlNode m_element
Element de l'option.
 
bool hasValidValue() const
Indique si l'option a une valeur invalide.
 
ICaseFunction * function() const override
Fonction associée à cette option (0 si aucune).
 
IPhysicalUnitConverter * m_unit_converter
Convertisseur d'unité (nullptr si pas besoin). Valide uniquement pour les options 'Real'.
 
bool isOptional() const
Indique si l'option est facultative.
 
virtual IStandardFunction * standardFunction() const
Fonction standard associée à cette option (0 si aucune).
 
ARCANE_DEPRECATED_LONG_TERM("Y2022: Do not access XML item from option") XmlNode element() const
Retourne l'élément de l'option.
 
ICaseFunction * m_function
Fonction associée (ou nullptr)
 
IPhysicalUnitConverter * physicalUnitConverter() const
Convertisseur d'unité physique.
 
bool isPresent() const
Retourne true si l'option est présente.
 
Vue constante d'un tableau de type T.
 
Interface du visiteur pour une option du jeu de données.
 
Interface d'une fonction du jeu de données.
 
Interface d'un convertisseur d'unité.
 
Interface gérant une fonction standard.
 
Dictionnaire de chaînes unicode.
 
Chaîne de caractères unicode.
 
Vecteur 1D de données avec sémantique par valeur (style STL).
 
constexpr ArrayView() noexcept
 
-*- 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.