Arcane  4.2.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ArcaneCaseMeshService_axl.h
1/*---------------------------------------------------------------------------*/
2/*---------------------------------------------------------------------------*/
3// #WARNING#: This file has been generated automatically. Do not edit.
4// Axlstar version 1.0
5/*---------------------------------------------------------------------------*/
6/*---------------------------------------------------------------------------*/
7
8#ifndef ARCANE_CASEOPTION_AXLSTAR_ARCANECASEMESHSERVICE_H
9#define ARCANE_CASEOPTION_AXLSTAR_ARCANECASEMESHSERVICE_H
10
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/String.h"
15
16#include "arcane/CaseOptions.h"
17#include "arcane/CaseOptionsMulti.h"
18#include "arcane/CaseOptionBuildInfo.h"
19#include "arcane/XmlNodeList.h"
20#include "arcane/CaseOptionService.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
26class CaseOptionsArcaneCaseMeshService
27{
28public:
29
30 /*-------------------------------------------------------------------------*/
31 /*--------------------------- Complex Options -----------------------------*/
32 /*-------------------------------------------------------------------------*/
33 // Generation for option 'variable'
34 // Generating multiple arity CaseOption for complex option value 'variable'
35 class CaseOptionInitVariableValue
37 {
38 public:
39
40 typedef CaseOptionInitVariableValue ThatClass;
41
42 CaseOptionInitVariableValue(Arcane::ICaseOptionsMulti* opt,Arcane::ICaseOptionList* icl, const Arcane::XmlNode& element)
43 : Arcane::CaseOptionComplexValue(opt,icl,element)
44 , name(Arcane::CaseOptionBuildInfo(_configList(),
45 /* name */ "name", _element(),
46 /* default */ Arcane::String(),
47 /* min-occurs */ 1,
48 /* max-occurs */ 1,
49 /* optional */ false))
50 , value(Arcane::CaseOptionBuildInfo(_configList(),
51 /* name */ "value", _element(),
52 /* default */ Arcane::String(),
53 /* min-occurs */ 1,
54 /* max-occurs */ 1,
55 /* optional */ false))
56 , group(Arcane::CaseOptionBuildInfo(_configList(),
57 /* name */ "group", _element(),
58 /* default */ Arcane::String(),
59 /* min-occurs */ 1,
60 /* max-occurs */ 1,
61 /* optional */ false))
62
63 {
64
65
66 }
67 public:
68 // Interfaces for multi-arity class CaseOptionsInitVariable
69
70 Arcane::String getName() { return name(); }
71 Arcane::ICaseFunction* getNameFunction() { return name.function(); }
72 Arcane::IStandardFunction* getNameStandardFunction() { return name.standardFunction(); }
73 Arcane::String getValue() { return value(); }
74 Arcane::ICaseFunction* getValueFunction() { return value.function(); }
75 Arcane::IStandardFunction* getValueStandardFunction() { return value.standardFunction(); }
76 Arcane::String getGroup() { return group(); }
77 Arcane::ICaseFunction* getGroupFunction() { return group.function(); }
78 Arcane::IStandardFunction* getGroupStandardFunction() { return group.standardFunction(); }
79
80
81
82 // Interfaces for complex options
83
84
85 public:
86
87 const ThatClass* operator->() const { return this; }
88
89 public:
90
91 Arcane::CaseOptionString name;
92 Arcane::CaseOptionString value;
93 Arcane::CaseOptionString group;
94 };
95
96 // Generation for sub-option 'variable'
97 class CaseOptionInitVariable
99 , private Arcane::ArrayView< CaseOptionInitVariableValue * >
100 {
101 public:
102
104
105 typedef CaseOptionInitVariableValue value_type;
106
107 public:
108
109 CaseOptionInitVariable(Arcane::ICaseOptionList* icl,
110 const Arcane::String& s, const Arcane::XmlNode& element)
111 : Arcane::CaseOptionsMulti(icl,s,element,0,-1)
112 {
113 // Generating translations and default values.
114 }
115
116 BaseClass operator()() { return (*this); }
117
118 protected:
119 void multiAllocate(const Arcane::XmlNodeList& elist)
120 {
121 Arcane::Integer s = elist.size();
122 value_type** v = 0;
123 if (s!=0)
124 v = new value_type*[s];
125 _setArray(v,s);
126 v = _ptr();
127 for( Arcane::Integer i=0; i<s; ++i ){
128 v[i] = new value_type(this,configList(),elist[i]);
129 }
130 }
131
132 public:
133
134 ~CaseOptionInitVariable()
135 {
136 Arcane::Integer s = count();
137 if (s==0) return;
138 value_type** v = _ptr();
139 for( Arcane::Integer i=0; i<s; ++i ){
140 delete v[i];
141 }
142 delete[] v;
143 }
144
145 public:
146
147 const value_type& operator[](Arcane::Integer i) const
148 { return *(BaseClass::operator[](i)); }
149 value_type& operator[](Arcane::Integer i)
150 { return *(BaseClass::operator[](i)); }
151 Arcane::Integer count() const
152 { return BaseClass::size(); }
153 Arcane::Integer size() const
154 { return BaseClass::size(); }
155
156 };
157
158 // Generation for option 'initialization'
159 // Generating simple arity CaseOption for option 'initialization'
160 class CaseOptionInit
161 : public Arcane::CaseOptions
162 {
163 public:
164
165 CaseOptionInit(Arcane::ICaseOptionList* icl,
166 const Arcane::String& s, const Arcane::XmlNode& element, bool is_optional=false)
167 : Arcane::CaseOptions(icl,s,element,is_optional)
168 , variable(_configList(),
169 /* name */ "variable", _element())
170 {
171
172 }
173
174 const CaseOptionInit& operator()() const { return *this; }
175
176 public:
177 // Interfaces for simple arity CaseOptions
178
179
180
181
182 // Interfaces for complex options
183
184
185 private:
186 // Méthodes pour unifier la construction des options.
187 Arcane::ICaseOptionList* _configList() { return configList(); }
188 Arcane::XmlNode _element() { return Arcane::XmlNode(); }
189
190 public:
191
192 CaseOptionInitVariable variable;
193
194 };
195
196 /*-------------------------------------------------------------------------*/
197 /*--------------------------- Non Complex Options -------------------------*/
198 /*-------------------------------------------------------------------------*/
199
200 CaseOptionsArcaneCaseMeshService(Arcane::ICaseOptions* co)
201 : m_case_options(co)
202 , filename(Arcane::CaseOptionBuildInfo(_configList(),
203 /* name */ "filename", _element(),
204 /* default */ Arcane::String(),
205 /* min-occurs */ 1,
206 /* max-occurs */ 1,
207 /* optional */ true))
208 , partitioner(Arcane::CaseOptionBuildInfo(_configList(),
209 /* name */ "partitioner", _element(),
210 /* default */ "DefaultPartitioner",
211 /* min-occurs */ 1,
212 /* max-occurs */ 1,
213 /* optional */ false))
214 , nbGhostLayer(Arcane::CaseOptionBuildInfo(_configList(),
215 /* name */ "nb-ghost-layer", _element(),
216 /* default */ "1",
217 /* min-occurs */ 1,
218 /* max-occurs */ 1,
219 /* optional */ false))
220 , ghostLayerBuilderVersion(Arcane::CaseOptionBuildInfo(_configList(),
221 /* name */ "ghost-layer-builder-version", _element(),
222 /* default */ "3",
223 /* min-occurs */ 1,
224 /* max-occurs */ 1,
225 /* optional */ false))
226 , faceNumberingVersion(Arcane::CaseOptionBuildInfo(_configList(),
227 /* name */ "face-numbering-version", _element(),
228 /* default */ Arcane::String(),
229 /* min-occurs */ 1,
230 /* max-occurs */ 1,
231 /* optional */ true))
232 , edgeNumberingVersion(Arcane::CaseOptionBuildInfo(_configList(),
233 /* name */ "edge-numbering-version", _element(),
234 /* default */ Arcane::String(),
235 /* min-occurs */ 1,
236 /* max-occurs */ 1,
237 /* optional */ true))
238 , generator(Arcane::CaseOptionBuildInfo(_configList(),
239 /* name */ "generator", _element(),
240 /* default */ Arcane::String(),
241 /* min-occurs */ 1,
242 /* max-occurs */ 1,
243 /* optional */ true),
244 /* allow-null */ false,
245 /* optional */ true)
246 , specificReader(Arcane::CaseOptionBuildInfo(_configList(),
247 /* name */ "specific-reader", _element(),
248 /* default */ Arcane::String(),
249 /* min-occurs */ 1,
250 /* max-occurs */ 1,
251 /* optional */ true),
252 /* allow-null */ false,
253 /* optional */ true)
254 , meshBuilderCustomiser(Arcane::CaseOptionBuildInfo(_configList(),
255 /* name */ "mesh-builder-customiser", _element(),
256 /* default */ Arcane::String(),
257 /* min-occurs */ 1,
258 /* max-occurs */ 1,
259 /* optional */ true),
260 /* allow-null */ false,
261 /* optional */ true)
262 , subdivider(Arcane::CaseOptionBuildInfo(_configList(),
263 /* name */ "subdivider", _element(),
264 /* default */ "ArcaneBasicMeshSubdivider",
265 /* min-occurs */ 1,
266 /* max-occurs */ 1,
267 /* optional */ true),
268 /* allow-null */ false,
269 /* optional */ true)
270 , cellDimensionKind(Arcane::CaseOptionBuildInfo(_configList(),
271 /* name */ "cell-dimension-kind", _element(),
272 /* default */ "mono-dimension",
273 /* min-occurs */ 1,
274 /* max-occurs */ 1,
275 /* optional */ false),
276 /* type */ "Arcane::eMeshCellDimensionKind")
277 , initialization(_configList(),
278 /* name */ "initialization", _element())
279 {
280
281 {
282 auto x = new Arcane::CaseOptionEnumValue(
283 /* enum value name */ Arcane::String("mono-dimension"),
284 /* enum object */ (int)(Arcane::eMeshCellDimensionKind::MonoDimension));
285 cellDimensionKind.addEnumValue(x,false);
286 }
287 {
288 auto x = new Arcane::CaseOptionEnumValue(
289 /* enum value name */ Arcane::String("multi-dimension"),
290 /* enum object */ (int)(Arcane::eMeshCellDimensionKind::MultiDimension));
291 cellDimensionKind.addEnumValue(x,false);
292 }
293 {
294 auto x = new Arcane::CaseOptionEnumValue(
295 /* enum value name */ Arcane::String("non-manifold"),
296 /* enum object */ (int)(Arcane::eMeshCellDimensionKind::NonManifold));
297 cellDimensionKind.addEnumValue(x,false);
298 }
299 }
300
301public:
302 // Interfaces for main CaseOptions
303
304 Arcane::String getFilename() { return filename(); }
305 Arcane::ICaseFunction* getFilenameFunction() { return filename.function(); }
306 Arcane::IStandardFunction* getFilenameStandardFunction() { return filename.standardFunction(); }
307 Arcane::String getPartitioner() { return partitioner(); }
308 Arcane::ICaseFunction* getPartitionerFunction() { return partitioner.function(); }
309 Arcane::IStandardFunction* getPartitionerStandardFunction() { return partitioner.standardFunction(); }
310 Arcane::Int32 getNbGhostLayer() { return nbGhostLayer(); }
311 Arcane::ICaseFunction* getNbGhostLayerFunction() { return nbGhostLayer.function(); }
312 Arcane::IStandardFunction* getNbGhostLayerStandardFunction() { return nbGhostLayer.standardFunction(); }
313 Arcane::Int32 getGhostLayerBuilderVersion() { return ghostLayerBuilderVersion(); }
314 Arcane::ICaseFunction* getGhostLayerBuilderVersionFunction() { return ghostLayerBuilderVersion.function(); }
315 Arcane::IStandardFunction* getGhostLayerBuilderVersionStandardFunction() { return ghostLayerBuilderVersion.standardFunction(); }
316 Arcane::Int32 getFaceNumberingVersion() { return faceNumberingVersion(); }
317 Arcane::ICaseFunction* getFaceNumberingVersionFunction() { return faceNumberingVersion.function(); }
318 Arcane::IStandardFunction* getFaceNumberingVersionStandardFunction() { return faceNumberingVersion.standardFunction(); }
319 Arcane::Int32 getEdgeNumberingVersion() { return edgeNumberingVersion(); }
320 Arcane::ICaseFunction* getEdgeNumberingVersionFunction() { return edgeNumberingVersion.function(); }
321 Arcane::IStandardFunction* getEdgeNumberingVersionStandardFunction() { return edgeNumberingVersion.standardFunction(); }
322
323
324 Arcane::eMeshCellDimensionKind getCellDimensionKind() { return cellDimensionKind(); }
325
326 Arcane::IMeshBuilder* getGenerator() { return generator(); }
327 Arcane::ICaseMeshReader* getSpecificReader() { return specificReader(); }
328 Arcane::IMeshBuilderCustomiser* getMeshBuilderCustomiser() { return meshBuilderCustomiser(); }
329 Arcane::IMeshSubdivider* getSubdivider() { return subdivider(); }
330 // Interfaces for complex options
331 bool hasGenerator() const
332 { return generator.isPresent(); }
333 bool hasFilename() const
334 { return filename.isPresent(); }
335 bool hasFaceNumberingVersion() const
336 { return faceNumberingVersion.isPresent(); }
337 bool hasEdgeNumberingVersion() const
338 { return edgeNumberingVersion.isPresent(); }
339 bool hasSpecificReader() const
340 { return specificReader.isPresent(); }
341 bool hasMeshBuilderCustomiser() const
342 { return meshBuilderCustomiser.isPresent(); }
343 bool hasSubdivider() const
344 { return subdivider.isPresent(); }
345
346
347public:
348
349 Arcane::ICaseOptions* caseOptions() const
350 {
351 return m_case_options.get();
352 }
353
354 Arcane::ICaseOptionList* configList() const
355 {
356 return m_case_options->configList();
357 }
358
359 void setCaseModule(Arcane::IModule* m)
360 {
361 m_case_options->setCaseModule(m);
362 }
363
364 void setCaseServiceInfo(Arcane::IServiceInfo* si)
365 {
366 m_case_options->setCaseServiceInfo(si);
367 }
368
369 void addAlternativeNodeName(const Arcane::String& lang,
370 const Arcane::String& name)
371 {
372 m_case_options->addAlternativeNodeName(lang,name);
373 }
374
375private:
376
377 Arcane::ICaseOptionList* _configList() const { return configList(); }
378 Arcane::XmlNode _element() const { return Arcane::XmlNode(); }
379
380private:
381
382 static Arcane::ICaseOptions* _createCaseOption(Arcane::ICaseMng* cm,Arcane::ICaseOptions* co);
383
384 Arcane::ReferenceCounter<Arcane::ICaseOptions> m_case_options;
385
386public:
387
388
389 Arcane::CaseOptionString filename;
390 Arcane::CaseOptionString partitioner;
391 Arcane::CaseOptionInt32 nbGhostLayer;
392 Arcane::CaseOptionInt32 ghostLayerBuilderVersion;
393 Arcane::CaseOptionInt32 faceNumberingVersion;
394 Arcane::CaseOptionInt32 edgeNumberingVersion;
395 Arcane::CaseOptionServiceT< Arcane::IMeshBuilder > generator;
396 Arcane::CaseOptionServiceT< Arcane::ICaseMeshReader > specificReader;
397 Arcane::CaseOptionServiceT< Arcane::IMeshBuilderCustomiser > meshBuilderCustomiser;
398 Arcane::CaseOptionServiceT< Arcane::IMeshSubdivider > subdivider;
399 Arcane::CaseOptionEnumT< Arcane::eMeshCellDimensionKind > cellDimensionKind;
400 CaseOptionInit initialization;
401};
402
403/*---------------------------------------------------------------------------*/
404/*---------------------------------------------------------------------------*/
405
406#endif
407
408
409
410/*---------------------------------------------------------------------------*/
411/*---------------------------------------------------------------------------*/
412// #WARNING#: This file has been generated automatically. Do not edit.
413// Axlstar version 1.0
414/*---------------------------------------------------------------------------*/
415/*---------------------------------------------------------------------------*/
416#ifndef ARCANE_SERVICE_AXLSTAR_ARCANECASEMESHSERVICE_H
417#define ARCANE_SERVICE_AXLSTAR_ARCANECASEMESHSERVICE_H
418/*---------------------------------------------------------------------------*/
419/*---------------------------------------------------------------------------*/
420
421#include "arcane/core/VariableTypes.h"
422#include "arcane/core/ServiceInfo.h"
423#include "arcane/core/ISubDomain.h"
424#include "arcane/core/ServiceBuildInfo.h"
426#include "arcane/core/ServiceRegisterer.h"
427#include "arcane/core/BasicService.h"
428
429#ifndef ARCANE_HAS_SPECIFIC_BASIC_SERVICE
430// Code pour les versions de Arcane avant la 3.8 qui ne possèdent pas les
431// classes de base spécifiques pour les services
432namespace Arcane
433{
434using BasicCaseOptionService = BasicService;
435using BasicSubDomainService = BasicService;
436using BasicMeshService = BasicService;
437}
438#endif
439
440/*---------------------------------------------------------------------------*/
441/*---------------------------------------------------------------------------*/
442
444
445/*---------------------------------------------------------------------------*/
446/*---------------------------------------------------------------------------*/
447
452{
453public:
454 // NOTE GG: attention code dupliqué avec 'ServiceT4CaseAndStrong'. Bien reporter les modifications
455 template <typename ServiceClassType> static void fillServiceInfo(Arcane::ServiceInfo* si)
456 {
457 si->setCaseOptionsFileName("ArcaneCaseMeshService_arcane_impl");
458 si->setAxlVersion(1.0);
459 si->setDefaultTagName("arcane-case-mesh-service");
460 si->setAxlContent(getAxlContent());
463);
464 }
465
466public:
467
470 : Arcane::AbstractService(sbi)
471 , m_options(nullptr)
472 {
474 if (co) {
476 }
477
478 }
479
482 {
483 delete m_options;
484 }
485
486
487public:
488
491
492private:
493
496
497protected:
498
500private:
502 {
503 const Arcane::Byte* content = (const Arcane::Byte*)"";
504 Arcane::Span<const Arcane::Byte> bytes(content,0);
505 int file_version = 1;
506 return Arcane::FileContent(bytes,file_version,"");
507 }
508};
509
510/*---------------------------------------------------------------------------*/
511/*---------------------------------------------------------------------------*/
512
513#define ARCANE_REGISTER_SERVICE_ARCANECASEMESHSERVICE(service_name,class_name) \
514 ARCANE_REGISTER_AXL_SERVICE(class_name,Arcane::ServiceProperty(#service_name,Arcane::ST_CaseOption,\
515 Arcane::SFP_None ))
516
517/*---------------------------------------------------------------------------*/
518/*---------------------------------------------------------------------------*/
519
520#endif
521
Ce fichier contient les différentes fabriques de services et macro pour enregistrer les services.
#define ARCANE_SERVICE_INTERFACE(ainterface)
Macro pour déclarer une interface lors de l'enregistrement d'un service.
CaseOptionsArcaneCaseMeshService * options() const
Options du jeu de données du service.
static Arcane::FileContent getAxlContent()
Variables du service.
virtual ~ArcaneArcaneCaseMeshServiceObject()
Destructeur.
ArcaneArcaneCaseMeshServiceObject(const Arcane::ServiceBuildInfo &sbi)
Constructeur.
CaseOptionsArcaneCaseMeshService * m_options
Options du jeu de données du service.
Classe de base d'un service.
AbstractService(const ServiceBuildInfo &)
Constructeur à partir d'un ServiceBuildInfo.
Vue modifiable d'un tableau d'un type T.
Classe de base de service lié à un sous-domaine.
Informations pour construire une option de jeu de données.
Classe de base d'une valeur d'une option complexe.
Nom et valeur d'une énumération du jeu de données.
Classe de base d'un tableau d'options complexes du jeu de données.
Classe de base d'une liste d'options du jeu de données.
Definition CaseOptions.h:57
Description et contenu d'un fichier.
Definition FileContent.h:32
Interface d'une fonction du jeu de données.
Interface du service gérant les maillages du jeu de données.
Interface d'une liste d'options du jeu de données.
Interface d'une liste d'options présente plusieurs fois.
Interface d'une liste d'options du jeu de données.
Interface gérant une fonction standard.
Informations d'un service.
Definition ServiceInfo.h:46
static void registerToServiceInfo(ServiceInfo *si, const Interfaces &... args)
Enregistre dans le service les fabriques pour les interfacs Interfaces.
ICaseOptions * caseOptions() const
Accès au ICaseOptions associé.
Structure contenant les informations pour créer un service.
Vue d'un tableau d'éléments de type T.
Definition Span.h:633
Chaîne de caractères unicode.
Liste de noeuds d'un arbre DOM.
Definition XmlNodeList.h:35
Noeud d'un arbre DOM.
Definition XmlNode.h:51
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
eMeshCellDimensionKind
Types de gestion de la dimension du maillage.
Definition MeshKind.h:72
@ MultiDimension
Les mailles ont la même dimension que le maillage ou une dimension inférieure.
Definition MeshKind.h:80
@ NonManifold
Maillage non manifold.
Definition MeshKind.h:90
@ MonoDimension
Les mailles ont la même dimension que le maillage.
Definition MeshKind.h:74
Int32 Integer
Type représentant un entier.
unsigned char Byte
Type d'un octet.
Definition BaseTypes.h:42
std::int32_t Int32
Type entier signé sur 32 bits.