14#include "arcane/utils/Iostream.h"
15#include "arcane/utils/Collection.h"
16#include "arcane/utils/Enumerator.h"
17#include "arcane/utils/String.h"
18#include "arcane/utils/ITraceMng.h"
19#include "arcane/utils/CriticalSection.h"
21#include "arcane/IServiceLoader.h"
22#include "arcane/IServiceMng.h"
23#include "arcane/ISubDomain.h"
24#include "arcane/Service.h"
25#include "arcane/IModuleFactory.h"
26#include "arcane/IModule.h"
28#include "arcane/ServiceInfo.h"
29#include "arcane/IService.h"
94extern "C++" IServiceLoader*
95arcaneCreateServiceLoader()
97 IServiceLoader* icl =
new ServiceLoader();
108 trace->
log() <<
"Loading Application Services";
119 trace->
log() <<
"Loading Session Services";
130 trace->
log() <<
"Loading SubDomain Services";
151 instance =
ssf->createSingletonServiceInstance(
sbi);
153 if (!
sfi->isSingleton())
154 tm->
info() <<
"WARNING: singleton service loading'"
155 <<
si->localName() <<
"' which is not specified as singleton.";
162 VersionInfo vi = si->
version();
164 tm->
log() <<
"Loading singleton service " << local_name
165 <<
" (Version " << vi <<
")"
166 <<
" (Type " <<
typeid(instance.
get()).name() <<
")"
167 <<
" N=" << implemented_interfaces.count();
169 tm->
log() <<
" (Interface implemented '" << *sc <<
"'";
196 trace->
warning() <<
"An instance of singleton service; name: '" << name <<
"' already exists."
197 <<
" The second instance will not be created !";
207 if (!
sfi->isSingleton())
209 if (
si->localName()!=name)
237 if (!
sfi->isSingleton())
239 if (!
sfi->isAutoload())
261 Ref<IModule> module = sf->createModule(sd,sd->defaultMeshHandle());
263 trace->
info() <<
"Loading module " <<
module->name()
264 << " (Version " << module->versionInfo() << ")"
265 << ((is_autoload) ? " (autoload)" : " ");
280 sf->initializeModuleFactory(
sd);
EnumeratorT< String > Enumerator
Type d'un itérateur sur toute la collection.
Section critique en multi-thread.
Interface de l'application.
virtual ITraceMng * traceMng() const =0
Gestionnaire de traces.
Informations sur la fabrique d'un module.
Informations sur la fabrique d'un service.
Interface des informations d'un service ou d'un module.
virtual String localName() const =0
Partie locale du nom du service.
virtual VersionInfo version() const =0
Version du service.
virtual StringCollection implementedInterfaces() const =0
Liste des noms des classes implémentées par ce service.
Interface de chargement des services.
Interface du gestionnaire de services.
virtual void addSingletonInstance(SingletonServiceInstanceRef sv)=0
Ajoute une référence au service sv.
Interface d'une session d'exécution d'un cas.
virtual IApplication * application() const =0
Application.
Interface du gestionnaire d'un sous-domaine.
virtual IApplication * application()=0
Application.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Informations pour créer un service.
Chargeur des services dans l'architecture.
void loadApplicationServices(IApplication *) override
Charge les services applicatifs disponibles.
void _loadServices(IApplication *application, const ServiceBuildInfoBase &sbib)
Charge les services dans le gestionnaire base.
void loadSubDomainServices(ISubDomain *parent) override
Charge les services de sous-domaine disponibles dans le sous-domaine sd.
void loadSessionServices(ISession *) override
Charge les services de session disponibles.
bool loadSingletonService(ISubDomain *sd, const String &name) override
Charge le service singleton de sous-domaine de nom name.
void initializeModuleFactories(ISubDomain *sd) override
Appel les méthodes d'initialisation des fabriques des modules.
void loadModules(ISubDomain *sd, bool all_modules) override
Charge les modules disponibles.
Interface du gestionnaire de traces.
virtual TraceMessage warning()=0
Flot pour un message d'avertissement.
virtual TraceMessage info()=0
Flot pour un message d'information.
virtual TraceMessage log()=0
Flot pour un message de log.
Référence à une instance.
InstanceType * get() const
Instance associée ou nullptr si aucune.
Chaîne de caractères unicode.
ITraceMng * traceMng() const
Gestionnaire de trace.
TraceMessage info() const
Flot pour un message d'information.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Collection< String > StringCollection
Collection de chaînes de caractères.