Arcane  v3.14.10.0
Documentation utilisateur
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 char * name ()
 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.
 

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

◆ 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.

◆ 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.

◆ 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.


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