Arcane  v3.14.10.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.
27using Internal::ServiceInfo;
28using Internal::ServiceAllInterfaceRegisterer;
29
30namespace Internal
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36class ServiceInfoPrivate;
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;
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;
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.
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 -*-
Collection< Internal::IServiceFactory2 * > ServiceFactory2Collection
Collection de fabriques de service.