Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ICaseMng.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/* ICaseMng.h (C) 2000-2023 */
9/* */
10/* Interface de la classe gérant le jeu de données. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ICASEMNG_H
13#define ARCANE_ICASEMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class ICaseMngInternal;
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32/*!
33 * \brief Types des évènements supportés par ICaseMng.
34 *
35 * Il est possible de s'enregistrer sur ces évènements via la méthode
36 * ICaseMng::observable().
37 */
39{
40 //! Évènement généré avant de lire les options dans la phase 1
42 //! Évènement généré avant de lire les options dans la phase 2.
44};
45
46/*---------------------------------------------------------------------------*/
47/*---------------------------------------------------------------------------*/
48/*!
49 * \ingroup CaseOption
50 * \brief Interface du gestionnaire de cas.
51 *
52 * Cette interface est gérée par un compteur de référence et ne doit pas
53 * être détruite explictement.
54 */
56{
57 ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS();
58
59 public:
60
61 // TODO: rendre privé (début 2024)
62 virtual ~ICaseMng() = default; //!< Libère les ressources
63
64 public:
65
66 //! Application associée
67 virtual IApplication* application() = 0;
68
69 //! Gestionnaire de traces
70 virtual ITraceMng* traceMng() = 0;
71
72 //! Gestionnaire de maillage associé
73 virtual IMeshMng* meshMng() const = 0;
74
75 //! Gestionnaire de sous-domaine.
76 virtual ISubDomain* subDomain() = 0;
77
78 //! Document XML du jeu de données (peut être nul si pas de jeu de donneés)
80
81 //! Fragment du Document XML associé au jeu de données (peut être nul si pas de jeu de donneés)
83
84 //! Système d'unité associé.
86
87 //! Lit le document XML du jeu de données.
88 virtual ICaseDocument* readCaseDocument(const String& filename, ByteConstArrayView bytes) = 0;
89
90 //! Lit les options du jeu de donnée correspondant aux modules utilisés
91 virtual void readOptions(bool is_phase1) = 0;
92
93 //! Affiche les valeurs des options
94 virtual void printOptions() = 0;
95
96 //! Lit les tables du jeu de donnée.
97 virtual void readFunctions() = 0;
98
99 public:
100
101 //! Enregistre une liste d'options du jeu de donnée
102 virtual void registerOptions(ICaseOptions*) = 0;
103
104 //! Déseregistre une liste d'options du jeu de donnée
105 virtual void unregisterOptions(ICaseOptions*) = 0;
106
107 //! Collection des blocs d'options.
108 virtual CaseOptionsCollection blocks() const = 0;
109
110 public:
111
112 //! Retourne la fonction de nom \a name ou \a nullptr s'il n'y en a pas.
113 virtual ICaseFunction* findFunction(const String& name) const = 0;
114
115 /*!
116 * \brief Retourne la liste des tables.
117 *
118 * Le pointeur retourné n'est plus valide dès que la liste des tables change.
119 */
120 virtual CaseFunctionCollection functions() = 0;
121
122 /*!
123 * \brief Supprime une fonction.
124 *
125 * Supprime la fonction \a func. Si cette fonction n'est pas dans cette liste,
126 * ne fait rien.
127 * Si \a dofree est vrai, l'opérateur delete est appelé sur cette fonction.
128 */
129 ARCCORE_DEPRECATED_2019("Use removeFunction(ICaseFunction*) instead.")
130 virtual void removeFunction(ICaseFunction* func, bool dofree) = 0;
131
132 /*!
133 * \brief Supprime une fonction.
134 *
135 * Supprime la fonction \a func. Si cette fonction n'est pas dans cette liste,
136 * ne fait rien.
137 */
138 virtual void removeFunction(ICaseFunction* func) = 0;
139
140 /*!
141 * \brief Ajoute la fonction \a func.
142 *
143 * L'ajout ne peut se faire que lors de l'initialisation. L'appelant reste
144 * propriétaire de l'instance \a func et doit l'enlever via removeFunction().
145 */
146 ARCCORE_DEPRECATED_2019("Use addFunction(Ref<ICaseFunction>) instead.")
147 virtual void addFunction(ICaseFunction* func) = 0;
148
149 /*!
150 * \brief Ajoute la fonction \a func.
151 *
152 * L'ajout ne peut se faire que lors de l'initialisation.
153 */
154 virtual void addFunction(Ref<ICaseFunction> func) = 0;
155
156 /*!
157 * \brief Met à jour les options basée sur une table de marche en temps.
158 *
159 * Pour chaque option dépendant d'une table de marche, met à jour sa valeur
160 * en utilisant le paramètre \a current_time s'il s'agit d'une table de
161 * marche avec paramètre réel ou \a current_iteration s'il s'agit d'une
162 * table de marche avec paramètre entier.
163 * Si la fonction de l'option possède un coefficient ICaseFunction::deltatCoef()
164 * non nul, le temps utilisé est égal à current_time + coef*current_deltat.
165 *
166 * \param current_time temps utilisé comme paramètre pour la fonction
167 * \param current_deltat deltat utilisé comme paramètre pour la fonction
168 * \param current_iteration itération utilisé comme paramètre pour la fonction
169 */
170 virtual void updateOptions(Real current_time, Real current_deltat, Integer current_iteration) = 0;
171
172 /*!
173 * \brief Positionne la manière de traiter les avertissements.
174 * \sa isTreatWarningAsError().
175 */
176 virtual void setTreatWarningAsError(bool v) = 0;
177
178 /*!
179 * \brief Indique si les avertissements dans le jeu de données doivent être traités
180 * comme des erreurs et provoquer l'arrêt du code.
181 */
182 virtual bool isTreatWarningAsError() const = 0;
183
184 //! Positionne l'autorisation des éléments inconnus à la racine du document.
185 virtual void setAllowUnkownRootElelement(bool v) = 0;
186
187 //! Indique si les éléments inconnus à la racine du document sont autorisés
188 virtual bool isAllowUnkownRootElelement() const = 0;
189
190 /*!
191 * \brief Observable sur l'instance.
192 *
193 * Le type de l'observable est donné par \a type
194 */
196
197 public:
198
199 virtual Ref<ICaseMng> toReference() = 0;
200
201 public:
202
203 //! Implémentation interne
204 virtual ICaseMngInternal* _internalImpl() = 0;
205};
206
207/*---------------------------------------------------------------------------*/
208/*---------------------------------------------------------------------------*/
209
210} // End namespace Arcane
211
212/*---------------------------------------------------------------------------*/
213/*---------------------------------------------------------------------------*/
214
215#endif
Interface de l'application.
Interface du gestionnaire de cas.
Definition ICaseMng.h:56
virtual void addFunction(ICaseFunction *func)=0
Ajoute la fonction func.
virtual IPhysicalUnitSystem * physicalUnitSystem() const =0
Système d'unité associé.
virtual ~ICaseMng()=default
Libère les ressources.
virtual ICaseMngInternal * _internalImpl()=0
Implémentation interne.
virtual IMeshMng * meshMng() const =0
Gestionnaire de maillage associé
virtual ITraceMng * traceMng()=0
Gestionnaire de traces.
virtual void setTreatWarningAsError(bool v)=0
Positionne la manière de traiter les avertissements.
virtual bool isTreatWarningAsError() const =0
Indique si les avertissements dans le jeu de données doivent être traités comme des erreurs et provoq...
virtual void printOptions()=0
Affiche les valeurs des options.
virtual void removeFunction(ICaseFunction *func, bool dofree)=0
Supprime une fonction.
virtual void readFunctions()=0
Lit les tables du jeu de donnée.
virtual ISubDomain * subDomain()=0
Gestionnaire de sous-domaine.
virtual ICaseDocument * readCaseDocument(const String &filename, ByteConstArrayView bytes)=0
Lit le document XML du jeu de données.
virtual IApplication * application()=0
Application associée.
virtual IObservable * observable(eCaseMngEventType type)=0
Observable sur l'instance.
virtual CaseOptionsCollection blocks() const =0
Collection des blocs d'options.
virtual ICaseDocumentFragment * caseDocumentFragment()=0
Fragment du Document XML associé au jeu de données (peut être nul si pas de jeu de donneés)
virtual void readOptions(bool is_phase1)=0
Lit les options du jeu de donnée correspondant aux modules utilisés.
virtual void unregisterOptions(ICaseOptions *)=0
Déseregistre une liste d'options du jeu de donnée.
virtual CaseFunctionCollection functions()=0
Retourne la liste des tables.
virtual void setAllowUnkownRootElelement(bool v)=0
Positionne l'autorisation des éléments inconnus à la racine du document.
virtual void updateOptions(Real current_time, Real current_deltat, Integer current_iteration)=0
Met à jour les options basée sur une table de marche en temps.
virtual bool isAllowUnkownRootElelement() const =0
Indique si les éléments inconnus à la racine du document sont autorisés.
virtual ICaseDocument * caseDocument()=0
Document XML du jeu de données (peut être nul si pas de jeu de donneés)
virtual ICaseFunction * findFunction(const String &name) const =0
Retourne la fonction de nom name ou nullptr s'il n'y en a pas.
virtual void registerOptions(ICaseOptions *)=0
Enregistre une liste d'options du jeu de donnée.
Interface du gestionnaire des maillages.
Definition IMeshMng.h:40
Interface d'un observable.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Vue constante d'un tableau de type T.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eCaseMngEventType
Types des évènements supportés par ICaseMng.
Definition ICaseMng.h:39
@ BeginReadOptionsPhase2
Évènement généré avant de lire les options dans la phase 2.
@ BeginReadOptionsPhase1
Évènement généré avant de lire les options dans la phase 1.
Collection< ICaseOptions * > CaseOptionsCollection
Collection d'options du jeu de données.