Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::ServiceRegisterer

Enregistreur de service et modules. Plus de détails...

#include <arcane/core/ServiceRegisterer.h>

+ Graphe de collaboration de Arcane::ServiceRegisterer:

Types publics

typedef IModuleFactoryInfo *(* ModuleFactoryWithPropertyFunc) (const ModuleProperty &properties)
 
typedef IServiceInfo *(* ServiceInfoWithPropertyCreateFunc) (const ServiceProperty &properties)
 

Fonctions membres publiques

 ServiceRegisterer (ServiceInfoWithPropertyCreateFunc func, const ServiceProperty &properties) ARCANE_NOEXCEPT
 Crée en enregistreur pour le service name et la fonction func.
 
 ServiceRegisterer (ModuleFactoryWithPropertyFunc func, const ModuleProperty &properties) ARCANE_NOEXCEPT
 Crée en enregistreur pour le module name avec les propriétés properties.
 
ServiceInfoWithPropertyCreateFunc infoCreatorWithPropertyFunction ()
 Fonction de création de l'instance 'ServiceInfo' si on est un service.
 
ModuleFactoryWithPropertyFunc moduleFactoryWithPropertyFunction ()
 Fonction de création de la factory si on est un module.
 
const charname ()
 Nom du service.
 
ARCANE_DEPRECATED_260 const ServicePropertyproperty () const
 
const ServicePropertyserviceProperty () const
 Propriétés dans le cas d'un service.
 
const ModulePropertymoduleProperty () const
 Propriétés dans le cas d'un module.
 
ServiceRegistererpreviousService () const
 Service précédent (0 si le premier)
 
ServiceRegisterernextService () const
 Service suivant (0 si le dernier)
 

Fonctions membres publiques statiques

static ServiceRegistererfirstService ()
 Accès au premier élément de la chaine d'enregistreur de service.
 
static Integer nbService ()
 Nombre d'enregisteur de service dans la chaine.
 

Fonctions membres privées

void setPreviousService (ServiceRegisterer *s)
 Positionne le service précédent.
 
void setNextService (ServiceRegisterer *s)
 Positionne le service suivant.
 
void _init ()
 

Attributs privés

ModuleFactoryWithPropertyFunc m_module_factory_with_property_functor
 Fonction de création du IModuleFactory.
 
ServiceInfoWithPropertyCreateFunc m_info_function_with_property
 Fonction de création du IServiceInfo.
 
const charm_name
 Nom du service.
 
ServiceProperty m_service_property
 Propriétés du service.
 
ModuleProperty m_module_property
 Propriétés du module.
 
ServiceRegistererm_previous
 Service précédent.
 
ServiceRegistererm_next
 Service suivant.
 

Description détaillée

Enregistreur de service et modules.

Cette classe implémente le pattern Singleton pour un service donnée.

Elle permet de déclarer une variable globale qui enregistre automatiquement le IServiceFactory du service souhaité. Cette classe ne s'utilise pas directement mais par l'intermédiaire de la macro ARCANE_DEFINE_SERVICE(name).

Comme cette classe est utilisé avec des instances globales, elles sont construites avant que le code ne rentre dans le main(). Il faut donc faire très attention à n'utiliser aucun objet ni faire d'allocation( En particulier, le nom du service doit être un const char* standard). Pour cela, la liste des services enregistré est maintenu dans une liste chaînée et chaque instance contient le pointeur vers le membre suivant et précédent de la liste. Le premier élément de la liste est obtenu par l'appel à ServiceRegisterer::firstService().

Définition à la ligne 55 du fichier ServiceRegisterer.h.

Documentation des définitions de type membres

◆ ModuleFactoryWithPropertyFunc

typedef IModuleFactoryInfo *(* Arcane::ServiceRegisterer::ModuleFactoryWithPropertyFunc) (const ModuleProperty &properties)

Définition à la ligne 59 du fichier ServiceRegisterer.h.

◆ ServiceInfoWithPropertyCreateFunc

typedef IServiceInfo *(* Arcane::ServiceRegisterer::ServiceInfoWithPropertyCreateFunc) (const ServiceProperty &properties)

Définition à la ligne 60 du fichier ServiceRegisterer.h.

Documentation des constructeurs et destructeur

◆ ServiceRegisterer() [1/2]

Arcane::ServiceRegisterer::ServiceRegisterer ( ServiceInfoWithPropertyCreateFunc  func,
const ServiceProperty properties 
)

Crée en enregistreur pour le service name et la fonction func.

Ce constructeur est utilisé pour enregistrer un service.

Définition à la ligne 36 du fichier ServiceRegisterer.cc.

◆ ServiceRegisterer() [2/2]

Arcane::ServiceRegisterer::ServiceRegisterer ( ModuleFactoryWithPropertyFunc  func,
const ModuleProperty properties 
)

Crée en enregistreur pour le module name avec les propriétés properties.

Ce constructeur est utilisé pour enregistrer un module.

Définition à la ligne 53 du fichier ServiceRegisterer.cc.

Documentation des fonctions membres

◆ _init()

void Arcane::ServiceRegisterer::_init ( )
private

Définition à la ligne 70 du fichier ServiceRegisterer.cc.

◆ firstService()

ServiceRegisterer * Arcane::ServiceRegisterer::firstService ( )
static

Accès au premier élément de la chaine d'enregistreur de service.

Définition à la ligne 107 du fichier ServiceRegisterer.cc.

Référencé par Arcane::ServiceAndModuleFactoryMng::createAllServiceRegistererFactories().

◆ infoCreatorWithPropertyFunction()

ServiceInfoWithPropertyCreateFunc Arcane::ServiceRegisterer::infoCreatorWithPropertyFunction ( )
inline

Fonction de création de l'instance 'ServiceInfo' si on est un service.

Ce pointeur peut-être nul si on n'est pas un service, auquel cas il faut utiliser infoCreatorFunction().

Définition à la ligne 86 du fichier ServiceRegisterer.h.

◆ moduleFactoryWithPropertyFunction()

ModuleFactoryWithPropertyFunc Arcane::ServiceRegisterer::moduleFactoryWithPropertyFunction ( )
inline

Fonction de création de la factory si on est un module.

Ce pointeur peut-être nul si on n'est pas un module, auquel cas il faut utiliser infoCreatorFunction().

Définition à la ligne 94 du fichier ServiceRegisterer.h.

◆ moduleProperty()

const ModuleProperty & Arcane::ServiceRegisterer::moduleProperty ( ) const
inline

Propriétés dans le cas d'un module.

Définition à la ligne 110 du fichier ServiceRegisterer.h.

◆ name()

const char * Arcane::ServiceRegisterer::name ( )
inline

Nom du service.

Définition à la ligne 97 du fichier ServiceRegisterer.h.

◆ nbService()

Integer Arcane::ServiceRegisterer::nbService ( )
static

Nombre d'enregisteur de service dans la chaine.

Définition à la ligne 116 du fichier ServiceRegisterer.cc.

Référencé par Arcane::ServiceAndModuleFactoryMng::createAllServiceRegistererFactories().

◆ nextService()

ServiceRegisterer * Arcane::ServiceRegisterer::nextService ( ) const
inline

Service suivant (0 si le dernier)

Définition à la ligne 116 du fichier ServiceRegisterer.h.

◆ previousService()

ServiceRegisterer * Arcane::ServiceRegisterer::previousService ( ) const
inline

Service précédent (0 si le premier)

Définition à la ligne 113 du fichier ServiceRegisterer.h.

◆ property()

ARCANE_DEPRECATED_260 const ServiceProperty & Arcane::ServiceRegisterer::property ( ) const
inline

Définition à la ligne 104 du fichier ServiceRegisterer.h.

◆ serviceProperty()

const ServiceProperty & Arcane::ServiceRegisterer::serviceProperty ( ) const
inline

Propriétés dans le cas d'un service.

Définition à la ligne 107 du fichier ServiceRegisterer.h.

◆ setNextService()

void Arcane::ServiceRegisterer::setNextService ( ServiceRegisterer s)
inlineprivate

Positionne le service suivant.

Utilisé en interne pour construire la chaine de service

Définition à la ligne 126 du fichier ServiceRegisterer.h.

◆ setPreviousService()

void Arcane::ServiceRegisterer::setPreviousService ( ServiceRegisterer s)
inlineprivate

Positionne le service précédent.

Utilisé en interne pour construire la chaine de service

Définition à la ligne 122 du fichier ServiceRegisterer.h.

Documentation des données membres

◆ m_info_function_with_property

ServiceInfoWithPropertyCreateFunc Arcane::ServiceRegisterer::m_info_function_with_property
private

Fonction de création du IServiceInfo.

Définition à la ligne 141 du fichier ServiceRegisterer.h.

◆ m_module_factory_with_property_functor

ModuleFactoryWithPropertyFunc Arcane::ServiceRegisterer::m_module_factory_with_property_functor
private

Fonction de création du IModuleFactory.

Définition à la ligne 139 du fichier ServiceRegisterer.h.

◆ m_module_property

ModuleProperty Arcane::ServiceRegisterer::m_module_property
private

Propriétés du module.

Définition à la ligne 147 du fichier ServiceRegisterer.h.

◆ m_name

const char* Arcane::ServiceRegisterer::m_name
private

Nom du service.

Définition à la ligne 143 du fichier ServiceRegisterer.h.

◆ m_next

ServiceRegisterer* Arcane::ServiceRegisterer::m_next
private

Service suivant.

Définition à la ligne 151 du fichier ServiceRegisterer.h.

◆ m_previous

ServiceRegisterer* Arcane::ServiceRegisterer::m_previous
private

Service précédent.

Définition à la ligne 149 du fichier ServiceRegisterer.h.

◆ m_service_property

ServiceProperty Arcane::ServiceRegisterer::m_service_property
private

Propriétés du service.

Définition à la ligne 145 du fichier ServiceRegisterer.h.


La documentation de cette classe a été générée à partir des fichiers suivants :