Arcane  v3.16.0.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-2025 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-2025 */
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);
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
85
86 private:
87
88 friend class ServiceBuilderWithOptionsBase;
89
90 // Uniquement pour ServiceBuilderWithOptionsBase
91 static ReferenceCounter<ICaseOptions> createDynamic(ICaseMng* cm, const AxlOptionsBuilder::Document& options_doc);
92
94 CaseOptions(ICaseMng*, const XmlContent& xm_content);
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 friend class CaseOptionMultiServiceImpl;
190
191 void _setTranslatedName();
192 bool _setMeshHandleAndCheckDisabled(const String& mesh_name);
193
194 protected:
195
197
198 private:
199
200 void _setMeshHandle(const MeshHandle& handle);
201 void _setParent(ICaseOptionList* parent);
202};
203
204/*---------------------------------------------------------------------------*/
205/*---------------------------------------------------------------------------*/
206
207} // End namespace Arcane
208
209/*---------------------------------------------------------------------------*/
210/*---------------------------------------------------------------------------*/
211
212#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.
String rootTagName() const override
Retourne le nom de l'élément dans le langage du jeu de données.
String rootTagTrueName() const override
Retourne le vrai nom (non traduit) de l'élément.
virtual String trueName() const
Retourne le vrai nom (non traduit) de l'élément.
String translatedName(const String &lang) const override
Nom dans la langue lang de l'option. Retourne rootTagTrueName() si pas de traduction.
virtual String name() const
Retourne le nom de l'élément dans le langage du jeu de données.
CaseOptionsPrivate * m_p
Implémentation.
CaseOptions(ICaseMng *cm, const String &name)
Construit un jeu d'options.
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.
Handle sur un maillage.
Definition MeshHandle.h:47
Implémentation thread-safe d'un compteur de référence.
Encapsulation d'un pointeur avec compteur de référence.
Chaîne de caractères unicode.
Noeud d'un arbre DOM.
Definition XmlNode.h:51
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eCaseOptionReadPhase
Phases de la lecture.