Arcane  v3.16.0.0
Documentation utilisateur
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.
29
30namespace Internal
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40/*!
41 * \internal
42 * \brief Informations d'un service.
43 */
44class ARCANE_CORE_EXPORT ServiceInfo
45: public IServiceInfo
46{
47 public:
48
49 //! Constructeur
50 ServiceInfo(const String& local_name,const VersionInfo& version,
51 Integer valid_dimension);
52
53 //! Destructeur
54 ~ServiceInfo() override;
55
56 public:
57
58 //!@{ @name Méthodes d'accès héritées de IServiceInfo
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;
66 const String& caseOptionsFileName() const override;
67 ServiceFactory2Collection factories() const override;
69 String tagName(const String& lang) const override;
70 const FileContent& axlContent() const override;
71 //!@}
72
73 //!@{ @name Méthodes de construction spécifiques
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);
80 //!@}
81
82 //! Infos sur les fabriques disponibles pour ce service
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.
ServiceInfo(const String &local_name, const VersionInfo &version, Integer valid_dimension)
Constructeur.
const FileContent & axlContent() const override
Contenu du fichier AXL associé à ce service ou module.
String localName() const override
Partie locale du nom du service.
String namespaceURI() const override
Namespace du nom du service.
bool allowDimension(Integer n) const override
Indique si le service est utilisable en dimension n.
VersionInfo version() const override
Version du service.
StringCollection implementedInterfaces() const override
Liste des noms des classes implémentées par ce service.
ServiceFactory2Collection factories() const override
Liste des fabriques du service.
void addImplementedInterface(const String &name) override
Ajoute l'interface de nom name aux interfaces implémentées par ce service.
ISingletonServiceFactory * singletonFactory() const override
Fabrique pour les service singleton (nullptr si non supporté)
int usageType() const override
Indique où peut être utilisé le service.
const String & caseOptionsFileName() const override
Nom du fichier contenant le jeu de données (nul si aucun)
IServiceFactoryInfo * factoryInfo() const override
Infos sur les fabriques disponibles pour ce service.
Real axlVersion() const override
Version du fichier axl décrivant ce service.
String tagName(const String &lang) const override
Nom de l'élément XML du service pour le langage lang. Si lang est nul, retourne le nom par défaut.
Propriétés de création d'un service.
Chaîne de caractères unicode.
Informations sur une version.
Definition VersionInfo.h:46
Types interne à Arcane.
Definition ArcaneTypes.h:93
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
Collection< String > StringCollection
Collection de chaînes de caractères.
Definition UtilsTypes.h:593
Collection< Internal::IServiceFactory2 * > ServiceFactory2Collection
Collection de fabriques de service.
double Real
Type représentant un réel.