Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
CaseOptions.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/* CaseOptions.h (C) 2000-2023 */
9/* */
10/* Options du jeu de données. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CASEOPTIONS_H
13#define ARCANE_CASEOPTIONS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include "arcane/utils/Array.h"
20#include "arcane/utils/String.h"
21#include "arcane/utils/Ref.h"
22
23#include "arcane/core/XmlNode.h"
24#include "arcane/core/ICaseOptions.h"
25#include "arcane/core/ICaseOptionList.h"
26
27// Ces fichiers ne sont pas nécessaires pour ce '.h' mais on les ajoute
28// car axlstar inclus uniquement 'CaseOptions.h'
29#include "arcane/core/CaseOptionSimple.h"
30#include "arcane/core/CaseOptionEnum.h"
31#include "arcane/core/CaseOptionExtended.h"
32#include "arcane/core/CaseOptionComplexValue.h"
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
36
37namespace Arcane
38{
39namespace AxlOptionsBuilder
40{
41class Document;
42}
43
44/*---------------------------------------------------------------------------*/
45/*---------------------------------------------------------------------------*/
54class ARCANE_CORE_EXPORT CaseOptions
56, public ICaseOptions
57{
59
60 private:
61
63 {
64 String m_xml_content;
65 IXmlDocumentHolder* m_document = nullptr;
66 };
67
68 public:
69
71 CaseOptions(ICaseMng* cm, const String& name);
73 CaseOptions(ICaseOptionList*, const String& name);
75 CaseOptions(ICaseMng* cm, const String& name, const XmlNode& parent);
77 CaseOptions(ICaseOptionList*, const String& name, const XmlNode& parent, bool is_optional = false, bool is_multi = false);
79
80 protected:
81
82 CaseOptions(ICaseMng*, const String& name, ICaseOptionList* parent);
84 CaseOptions(ICaseOptionList*, const String& name, ICaseOptionList* parent);
85
86 private:
87
89
90 // Uniquement pour ServiceBuilderWithOptionsBase
92
95
96 public:
97
99 ~CaseOptions() override;
100
101 private:
102
103 CaseOptions(const CaseOptions& rhs) = delete;
104 CaseOptions& operator=(const CaseOptions& rhs) = delete;
105
106 public:
107
109 String rootTagTrueName() const override;
110
112 String rootTagName() const override;
113
115 String translatedName(const String& lang) const override;
116
118 virtual String trueName() const { return rootTagTrueName(); }
119
121 virtual String name() const { return rootTagName(); }
122
123 void read(bool is_phase1) override
124 {
125 auto p = (is_phase1) ? eCaseOptionReadPhase::Phase1 : eCaseOptionReadPhase::Phase2;
126 read(p);
127 }
128
129 void read(eCaseOptionReadPhase phase) override;
130
131 void addInvalidChildren(XmlNodeList&) override;
132
133 void printChildren(const String& lang, int indent) override;
134
136 IServiceInfo* caseServiceInfo() const override;
137
139 IModule* caseModule() const override;
140
142 void setCaseServiceInfo(IServiceInfo* m) override;
143
145 void setCaseModule(IModule* m) override;
146
148 void deepGetChildren(Array<CaseOptionBase*>& col) override;
149
150 ICaseOptionList* configList() override;
151
152 const ICaseOptionList* configList() const override;
153
155 ICaseFunction* activateFunction() override;
156
161 bool isPresent() const override;
162
169 void addAlternativeNodeName(const String& lang, const String& name) override;
170
171 ICaseMng* caseMng() const override;
172 ITraceMng* traceMng() const override;
173 ISubDomain* subDomain() const override;
174 IMesh* mesh() const override;
175 MeshHandle meshHandle() const override;
176 ICaseDocument* caseDocument() const override;
177 ICaseDocumentFragment* caseDocumentFragment() const override;
178
179 void detach() override;
180
181 void visit(ICaseDocumentVisitor* visitor) const override;
182
183 String xpathFullName() const override;
184
185 Ref<ICaseOptions> toReference() override;
186
187 protected:
188
189 void _setTranslatedName();
190 bool _setMeshHandleAndCheckDisabled(const String& mesh_name);
191
192 protected:
193
195
196 private:
197
198 void _setMeshHandle(const MeshHandle& handle);
199 void _setParent(ICaseOptionList* parent);
200};
201
202/*---------------------------------------------------------------------------*/
203/*---------------------------------------------------------------------------*/
204
205} // End namespace Arcane
206
207/*---------------------------------------------------------------------------*/
208/*---------------------------------------------------------------------------*/
209
210#endif
#define ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour définir les méthodes gérant les compteurs de référence.
Option 'ServiceInstance' du jeu de données.
Classe de base d'une liste d'options du jeu de données.
Definition CaseOptions.h:57
virtual String trueName() const
Retourne le vrai nom (non traduit) de l'élément.
virtual String name() const
Retourne le nom de l'élément dans le langage du jeu de données.
CaseOptionsPrivate * m_p
Implémentation.
Interface du gestionnaire de cas.
Definition ICaseMng.h:56
Interface d'une liste d'options du jeu de données.
Interface d'une liste d'options du jeu de données.
Gestionnaire d'un document DOM.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Handle sur un maillage.
Definition MeshHandle.h:47
Noeud d'un arbre DOM.
Definition XmlNode.h:51
Implémentation thread-safe d'un compteur de référence.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eCaseOptionReadPhase
Phases de la lecture.