Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::ServiceLoader Class Reference

Service loader in the architecture. More...

Inheritance diagram for Arcane::ServiceLoader:
Collaboration diagram for Arcane::ServiceLoader:

Public Member Functions

void loadApplicationServices (IApplication *) override
 Loads available application services.
void loadSessionServices (ISession *) override
 Loads available session services.
void loadSubDomainServices (ISubDomain *parent) override
 Loads available subdomain services in the subdomain sd.
void loadModules (ISubDomain *sd, bool all_modules) override
 Loads available modules.
void initializeModuleFactories (ISubDomain *sd) override
 Calls the initialization methods for module factories.
bool loadSingletonService (ISubDomain *sd, const String &name) override
 Loads the subdomain singleton service with name name.
Public Member Functions inherited from Arcane::IServiceLoader
virtual ~IServiceLoader ()=default
 Releases resources.

Private Member Functions

void _loadServices (IApplication *application, const ServiceBuildInfoBase &sbib)
 Loads services in the base manager.
SingletonServiceInstanceRef _createSingletonInstance (IServiceMng *sm, IServiceInfo *si, const ServiceBuildInfoBase &sbi)

Additional Inherited Members

Public Types inherited from Arcane::IServiceLoader
typedef IServiceFactory *(* CreateServiceFactoryFunc) (IServiceInfo *)
 Type of a function that returns a factory for a given service.

Detailed Description

Service loader in the architecture.

Definition at line 45 of file ServiceLoader.cc.

Constructor & Destructor Documentation

◆ ServiceLoader()

Arcane::ServiceLoader::ServiceLoader ( )

Definition at line 78 of file ServiceLoader.cc.

◆ ~ServiceLoader()

Arcane::ServiceLoader::~ServiceLoader ( )
override

Definition at line 86 of file ServiceLoader.cc.

Member Function Documentation

◆ _createSingletonInstance()

SingletonServiceInstanceRef Arcane::ServiceLoader::_createSingletonInstance ( IServiceMng * sm,
IServiceInfo * si,
const ServiceBuildInfoBase & sbi )
private

Definition at line 139 of file ServiceLoader.cc.

◆ _loadServices()

void Arcane::ServiceLoader::_loadServices ( IApplication * application,
const ServiceBuildInfoBase & sbib )
private

Loads services in the base manager.

Definition at line 226 of file ServiceLoader.cc.

References Arcane::IServiceInfo::factoryInfo(), Arcane::IServiceFactoryInfo::isAutoload(), Arcane::IServiceFactoryInfo::isSingleton(), Arcane::IApplication::serviceFactories2(), Arcane::Internal::IServiceFactory2::serviceInfo(), Arcane::IBase::serviceMng(), and Arcane::ServiceBuildInfoBase::serviceParent().

Referenced by loadApplicationServices(), loadSessionServices(), and loadSubDomainServices().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ initializeModuleFactories()

void Arcane::ServiceLoader::initializeModuleFactories ( ISubDomain * sd)
overridevirtual

Calls the initialization methods for module factories.

Implements Arcane::IServiceLoader.

Definition at line 274 of file ServiceLoader.cc.

References Arcane::ISubDomain::application(), Arcane::IModuleFactoryInfo::initializeModuleFactory(), and Arcane::IApplication::moduleFactoryInfos().

Here is the call graph for this function:

◆ loadApplicationServices()

void Arcane::ServiceLoader::loadApplicationServices ( IApplication * parent)
overridevirtual

Loads available application services.

Implements Arcane::IServiceLoader.

Definition at line 104 of file ServiceLoader.cc.

References _loadServices(), Arcane::ITraceMng::log(), and Arcane::IBase::traceMng().

Here is the call graph for this function:

◆ loadModules()

void Arcane::ServiceLoader::loadModules ( ISubDomain * sd,
bool all_modules )
overridevirtual

◆ loadSessionServices()

void Arcane::ServiceLoader::loadSessionServices ( ISession * parent)
overridevirtual

Loads available session services.

Implements Arcane::IServiceLoader.

Definition at line 115 of file ServiceLoader.cc.

References _loadServices(), Arcane::ISession::application(), Arcane::ITraceMng::log(), and Arcane::IBase::traceMng().

Here is the call graph for this function:

◆ loadSingletonService()

bool Arcane::ServiceLoader::loadSingletonService ( ISubDomain * sd,
const String & name )
overridevirtual

Loads the subdomain singleton service with name name.

Returns true upon success and false if the singleton service is not found.

Implements Arcane::IServiceLoader.

Definition at line 179 of file ServiceLoader.cc.

References Arcane::ISubDomain::application(), Arcane::IServiceInfo::factoryInfo(), Arcane::RefImpl< InstanceType, RefClassType, ImplTagId >::get(), Arcane::IServiceFactoryInfo::isSingleton(), Arcane::IServiceInfo::localName(), Arcane::IApplication::serviceFactories2(), Arcane::Internal::IServiceFactory2::serviceInfo(), Arcane::IBase::serviceMng(), Arcane::IServiceMng::singletonServiceReference(), Arcane::IBase::traceMng(), and Arcane::ITraceMng::warning().

Here is the call graph for this function:

◆ loadSubDomainServices()

void Arcane::ServiceLoader::loadSubDomainServices ( ISubDomain * parent)
overridevirtual

Loads available subdomain services in the subdomain sd.

Implements Arcane::IServiceLoader.

Definition at line 126 of file ServiceLoader.cc.

References _loadServices(), Arcane::ISubDomain::application(), Arcane::ITraceMng::log(), and Arcane::IBase::traceMng().

Here is the call graph for this function:

The documentation for this class was generated from the following file: