Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ServiceInfo.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* ServiceInfo.h (C) 2000-2019 */
9/* */
10/* Informations d'un service. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_SERVICEINFO_H
13#define ARCANE_SERVICEINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18#include "arcane/utils/FileContent.h"
19#include "arcane/IServiceInfo.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26//TODO: a supprimer. cela est conservé pour compatibilité avec le générateur des axl.
27using Internal::ServiceInfo;
28using Internal::ServiceAllInterfaceRegisterer;
29
30namespace Internal
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36class ServiceInfoPrivate;
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
44class ARCANE_CORE_EXPORT ServiceInfo
45: public IServiceInfo
46{
47 public:
48
50 ServiceInfo(const String& local_name,const VersionInfo& version,
51 Integer valid_dimension);
52
54 ~ServiceInfo() override;
55
56 public:
57
59 String localName() const override;
60 String namespaceURI() const override;
61 VersionInfo version() const override;
62 Real axlVersion() const override;
63 bool allowDimension(Integer n) const override;
64 void addImplementedInterface(const String& name) override;
65 StringCollection implementedInterfaces() const override;
66 const String& caseOptionsFileName() const override;
67 ServiceFactory2Collection factories() const override;
68 ISingletonServiceFactory* singletonFactory() const override;
69 String tagName(const String& lang) const override;
70 const FileContent& axlContent() const override;
72
74 virtual void setAxlVersion(Real v) const;
75 virtual void setCaseOptionsFileName(const String& fn);
76 virtual void addFactory(IServiceFactory2* factory);
77 virtual void setDefaultTagName(const String& value);
78 virtual void setTagName(const String& value,const String& lang);
79 virtual void setSingletonFactory(Internal::ISingletonServiceFactory* f);
81
83 IServiceFactoryInfo* factoryInfo() const override;
84 void setFactoryInfo(IServiceFactoryInfo* sfi);
85
86 void setAxlContent(const FileContent& file_content);
87
88 int usageType() const override;
89
90 public:
91
92 // Fonction de création utilisée par les macros C++.
93 static ServiceInfo* create(const ServiceProperty& sp,const char* filename,int lineno);
94
95 // Fonction de création utilisée par le C#.
96 // (le C# ne peut pas utiliser la méthode C++ à cause de ServiceProperty
97 // qui contient un const char* qui sera collecté par le garbage collector)
98 static ServiceInfo* create(const String& name,int service_type);
99
100 private:
101
103};
104
105/*---------------------------------------------------------------------------*/
106/*---------------------------------------------------------------------------*/
107
108} // End namespace Internal
109} // End namespace Arcane
110
111/*---------------------------------------------------------------------------*/
112/*---------------------------------------------------------------------------*/
113
114#endif
115
Description et contenu d'un fichier.
Definition FileContent.h:32
Informations sur la fabrique d'un service.
Interface des informations d'un service ou d'un module.
Informations d'un service.
Definition ServiceInfo.h:46
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Propriétés de création d'un service.
Informations sur une version.
Definition VersionInfo.h:46
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-