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"
39 Integer valid_dimension);
45 m_factories.add(factory);
52 Integer m_valid_dimension;
54 String m_case_options_file_name;
73 Integer valid_dimension)
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;
104 Integer valid_dimension)
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;
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.
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.
String find(const String &key, bool throw_exception=false) const
Retourne la valeur associée à key.
Informations sur une version.
Encapsulation d'un pointeur avec compteur de référence.
Chaîne de caractères unicode.
String clone() const
Clone cette chaîne.
const char * localstr() const
Retourne la conversion de l'instance dans l'encodage UTF-8.
bool null() const
Retourne true si la chaîne est nulle.
String lower() const
Transforme tous les caractères de la chaîne en minuscules.
Vecteur 1D de données avec sémantique par valeur (style STL).
Collection< Internal::IServiceFactory2 * > ServiceFactory2Collection
Collection de fabriques de service.