14#include "arcane/utils/ArcanePrecomp.h"
16#include "arcane/utils/List.h"
17#include "arcane/utils/VersionInfo.h"
18#include "arcane/utils/String.h"
19#include "arcane/utils/StringBuilder.h"
21#include "arcane/ServiceInfo.h"
22#include "arcane/ServiceFactory.h"
23#include "arcane/StringDictionary.h"
24#include "arcane/IBase.h"
35class ServiceInfoPrivate
40 ~ServiceInfoPrivate();
45 m_factories.add(factory);
54 String m_case_options_file_name;
74: m_namespace_uri(arcaneNamespaceURI())
75, m_local_name(local_name)
77, m_valid_dimension(valid_dimension)
78, m_singleton_factory(nullptr)
80, m_factory_info(nullptr)
81, m_usage_type(ST_None)
83 m_default_tag_name = local_name.
clone();
84 m_default_tag_name = m_default_tag_name.
lower();
93 delete m_singleton_factory;
124 return m_p->m_namespace_uri;
133 return m_p->m_local_name;
142 return m_p->m_version;
151 if (n==3 && (m_p->m_valid_dimension & Dim3))
153 if (n==2 && (m_p->m_valid_dimension & Dim2))
155 if (n==1 && (m_p->m_valid_dimension & Dim1))
166 if (m_p->m_implemented_interfaces.contains(name))
168 m_p->m_implemented_interfaces.add(name);
177 return m_p->m_implemented_interfaces;
186 return m_p->m_case_options_file_name;
193setCaseOptionsFileName(
const String& fn)
195 m_p->m_case_options_file_name = fn;
202addFactory(IServiceFactory2* factory)
204 m_p->addFactory(factory);
213 return m_p->factories();
222 return m_p->m_singleton_factory;
231 delete m_p->m_singleton_factory;
232 m_p->m_singleton_factory = f;
241 String v = m_p->m_tag_names.find(lang);
243 v = m_p->m_default_tag_name;
251setDefaultTagName(
const String& value)
253 m_p->m_default_tag_name = value;
262 m_p->m_tag_names.
add(lang,value);
271 return m_p->m_axl_version;
278setAxlVersion(
Real v)
const
280 m_p->m_axl_version = v;
289 return m_p->m_factory_info;
298 m_p->m_factory_info = sfi;
304 m_p->m_axl_content = file_content;
310 return m_p->m_axl_content;
319 return m_p->m_usage_type;
328 ARCANE_UNUSED(filename);
329 ARCANE_UNUSED(lineno);
336 si->setFactoryInfo(sfi);
338 si->m_p->m_usage_type = sp.
type();
346create(
const String& name,
int service_type)
349 return create(sp,
"none",0);
Description et contenu d'un fichier.
Informations sur la fabrique d'un service.
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.
~ServiceInfo() override
Destructeur.
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.
Implémentation d'une collection d'éléments sous forme de vecteur.
Encapsulation d'un pointeur avec compteur de référence.
Propriétés de création d'un service.
const char * name() const
Nom du service.
eServiceFactoryProperties properties() const
Propriétés du service (combinaison de eServiceFactoryProperties)
int type() const
Type du service (combinaison de eServiceType)
void add(const String &key, const String &value)
Ajoute le couple (key,value) au dictionnaire.
Chaîne de caractères unicode.
bool null() const
Retourne true si la chaîne est nulle.
String clone() const
Clone cette chaîne.
String lower() const
Transforme tous les caractères de la chaîne en minuscules.
const char * localstr() const
Retourne la conversion de l'instance dans l'encodage UTF-8.
Vecteur 1D de données avec sémantique par valeur (style STL).
Informations sur une version.
Int32 Integer
Type représentant un entier.
Collection< String > StringCollection
Collection de chaînes de caractères.
Collection< Internal::IServiceFactory2 * > ServiceFactory2Collection
Collection de fabriques de service.
List< String > StringList
Tableau de chaînes de caractères unicode.
double Real
Type représentant un réel.