Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence du fichier ServiceFactory.h

Ce fichier contient les différentes fabriques de services et macro pour enregistrer les services. Plus de détails...

#include "arcane/utils/NotSupportedException.h"
#include "arcane/utils/TraceInfo.h"
#include "arcane/utils/ExternalRef.h"
#include "arcane/IApplication.h"
#include "arcane/ISession.h"
#include "arcane/ISubDomain.h"
#include "arcane/ServiceBuildInfo.h"
#include "arcane/IServiceFactory.h"
#include "arcane/ServiceRegisterer.h"
#include "arcane/ServiceInfo.h"
#include "arcane/IService.h"
#include "arcane/ServiceProperty.h"
#include "arcane/ServiceInstance.h"
+ Graphe des dépendances par inclusion de ServiceFactory.h:
+ Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Classes

class  Arcane::Internal::DotNetServiceInstance
 Classe de base d'une instance de service en C#. Plus de détails...
 
class  Arcane::Internal::ServiceInstanceT< InterfaceType >
 Instance d'un service. Plus de détails...
 
class  Arcane::Internal::ServiceFactoryInfo
 Infos sur la fabrication d'un service ou d'un module. Plus de détails...
 
class  Arcane::Internal::IServiceInterfaceFactory< InterfaceType >
 Interface d'un fonctor de création d'une instance de service correspondant à l'interface InterfaceType. Plus de détails...
 
class  Arcane::Internal::ServiceFactory2TV2< InterfaceType >
 Fabrique de service. Plus de détails...
 
class  Arcane::Internal::ServiceInterfaceFactory< ServiceType, InterfaceType >
 Fabrique pour le service ServiceType pour l'interface InterfaceType. Plus de détails...
 
class  Arcane::Internal::IServiceInstanceAdder
 
class  Arcane::Internal::SingletonServiceFactoryBase
 Classe de base des fabriques pour les services singleton. Plus de détails...
 
class  Arcane::Internal::SingletonServiceFactory< ServiceType, Interfaces >
 Fabrique pour le service singleton de type ServiceType implémentant les interfaces Interfaces. Plus de détails...
 
class  Arcane::Internal::SingletonServiceFactory< ServiceType, Interfaces >::Helper
 Classe utilitaire permettant de créér une instance de IServiceInstance pour chaque interface de Interfaces. Plus de détails...
 
class  Arcane::Internal::ServiceInterfaceRegisterer< InterfaceType >
 Classe permettant d'enregistrer une fabrique pour un service implémentant l'interface InterfaceType. Plus de détails...
 
class  Arcane::Internal::ServiceAllInterfaceRegisterer< ServiceType >
 Classe permettant de créer et d'enregistrer les fabriques pour un service. Plus de détails...
 

Espaces de nommage

namespace  Arcane
 -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
 
namespace  Arcane::Internal
 Types interne à Arcane.
 

Macros

#define ARCANE_SERVICE_INTERFACE(ainterface)    Arcane::Internal::ServiceInterfaceRegisterer< ainterface >(#ainterface)
 Macro pour déclarer une interface lors de l'enregistrement d'un service.
 
#define ARCANE_SERVICE_INTERFACE_NS(ainterface_ns, ainterface)    Arcane::Internal::ServiceInterfaceRegisterer<ainterface_ns :: ainterface>(#ainterface_ns,#ainterface)
 Enregistre une interface avec un nom de namespace.
 
#define ARCANE_REGISTER_SERVICE(aclass, a_service_property, ...)
 Macro pour enregistrer un service.
 
#define ARCANE_REGISTER_AXL_SERVICE(aclass, a_service_properties)
 Macro pour enregistrer un service issu d'un fichier AXL.
 
#define ARCANE_REGISTER_APPLICATION_FACTORY(aclass, ainterface, aname)
 Enregistre un service de fabrique pour la classe aclass.
 
#define ARCANE_REGISTER_SUB_DOMAIN_FACTORY(aclass, ainterface, aname)
 Enregistre un service de fabrique pour la classe aclass.
 
#define ARCANE_REGISTER_SUB_DOMAIN_FACTORY4(aclass, ainterface_ns, ainterface, aname)
 Enregistre un service de fabrique pour la classe aclass.
 
#define ARCANE_REGISTER_CASE_OPTIONS_NOAXL_FACTORY(aclass, ainterface, aname)
 Enregistre un service de fabrique pour la classe aclass.
 
#define ARCANE_REGISTER_CASE_OPTIONS_NOAXL_FACTORY4(aclass, ainterface_ns, ainterface, aname)
 Enregistre un service de fabrique pour la classe aclass.
 

Description détaillée

Ce fichier contient les différentes fabriques de services et macro pour enregistrer les services.

La plupart des types de ce fichier sont internes à Arcane. Le seul élément utile pour un utilisateur est la macro ARCANE_REGISTER_SERVICE() qui permet d'enregistrer un service.

Définition dans le fichier ServiceFactory.h.

Documentation des macros

◆ ARCANE_REGISTER_APPLICATION_FACTORY

#define ARCANE_REGISTER_APPLICATION_FACTORY (   aclass,
  ainterface,
  aname 
)
Valeur :
#define ARCANE_SERVICE_INTERFACE(ainterface)
Macro pour déclarer une interface lors de l'enregistrement d'un service.
Propriétés de création d'un service.
#define ARCANE_REGISTER_SERVICE(aclass, a_service_property,...)
Macro pour enregistrer un service.
@ ST_Application
Le service s'utilise au niveau de l'application.

Enregistre un service de fabrique pour la classe aclass.

Le service est enregistré sous le nom aname et implémente l'interface ainterface.

Obsolète:
Utiliser ARCANE_REGISTER_SERVICE() à la place.

Définition à la ligne 572 du fichier ServiceFactory.h.

◆ ARCANE_REGISTER_AXL_SERVICE

#define ARCANE_REGISTER_AXL_SERVICE (   aclass,
  a_service_properties 
)
Valeur :
namespace\
{\
ARCANE_JOIN_WITH_LINE(arcaneCreateServiceInfo##aclass) (const Arcane::ServiceProperty& properties) \
{\
Arcane::ServiceInfo* si = Arcane::ServiceInfo::create(properties,__FILE__,__LINE__); \
aclass :: fillServiceInfo< aclass >(si); \
return si;\
}\
}\
Arcane::ServiceRegisterer ARCANE_EXPORT ARCANE_JOIN_WITH_LINE(globalServiceRegisterer##aclass) \
(& ARCANE_JOIN_WITH_LINE(arcaneCreateServiceInfo##aclass),a_service_properties)
Interface des informations d'un service ou d'un module.
Informations d'un service.
Definition ServiceInfo.h:46
Enregistreur de service et modules.

Macro pour enregistrer un service issu d'un fichier AXL.

Cette macro est interne à Arcane et ne doit pas être utilisée directement

Définition à la ligne 538 du fichier ServiceFactory.h.

◆ ARCANE_REGISTER_CASE_OPTIONS_NOAXL_FACTORY

#define ARCANE_REGISTER_CASE_OPTIONS_NOAXL_FACTORY (   aclass,
  ainterface,
  aname 
)
Valeur :
@ ST_CaseOption
Le service s'utilise au niveau du jeu de données.

Enregistre un service de fabrique pour la classe aclass.

Le service est enregistré sous le nom aname et implémente l'interface ainterface.

Obsolète:
Utiliser ARCANE_REGISTER_SERVICE() à la place.

Définition à la ligne 614 du fichier ServiceFactory.h.

◆ ARCANE_REGISTER_CASE_OPTIONS_NOAXL_FACTORY4

#define ARCANE_REGISTER_CASE_OPTIONS_NOAXL_FACTORY4 (   aclass,
  ainterface_ns,
  ainterface,
  aname 
)
Valeur :
ARCANE_SERVICE_INTERFACE_NS(ainterface_ns,ainterface) )
#define ARCANE_SERVICE_INTERFACE_NS(ainterface_ns, ainterface)
Enregistre une interface avec un nom de namespace.

Enregistre un service de fabrique pour la classe aclass.

Le service est enregistré sous le nom aname et implémente l'interface ainterface.

Obsolète:
Utiliser ARCANE_REGISTER_SERVICE() à la place.

Définition à la ligne 628 du fichier ServiceFactory.h.

◆ ARCANE_REGISTER_SUB_DOMAIN_FACTORY

#define ARCANE_REGISTER_SUB_DOMAIN_FACTORY (   aclass,
  ainterface,
  aname 
)
Valeur :
@ ST_SubDomain
Le service s'utilise au niveau du sous-domaine.

Enregistre un service de fabrique pour la classe aclass.

Le service est enregistré sous le nom aname et implémente l'interface ainterface.

Obsolète:
Utiliser ARCANE_REGISTER_SERVICE() à la place.

Définition à la ligne 586 du fichier ServiceFactory.h.

◆ ARCANE_REGISTER_SUB_DOMAIN_FACTORY4

#define ARCANE_REGISTER_SUB_DOMAIN_FACTORY4 (   aclass,
  ainterface_ns,
  ainterface,
  aname 
)
Valeur :

Enregistre un service de fabrique pour la classe aclass.

Le service est enregistré sous le nom aname et implémente l'interface ainterface du namespace ainterface_ns.

Obsolète:
Utiliser ARCANE_REGISTER_SERVICE() à la place.

Définition à la ligne 600 du fichier ServiceFactory.h.

◆ ARCANE_SERVICE_INTERFACE

#define ARCANE_SERVICE_INTERFACE (   ainterface)     Arcane::Internal::ServiceInterfaceRegisterer< ainterface >(#ainterface)

Macro pour déclarer une interface lors de l'enregistrement d'un service.

Cette macro s'utilise dans la macro ARCANE_REGISTER_SERVICE.

L'appel est comme suit:

ainterface est le nom de l'interface (sans les guillemets). Il peut contenir un namespace. Par exemple:

Interface d'un service de test unitaire.
Definition IUnitTest.h:34

Définition à la ligne 475 du fichier ServiceFactory.h.

◆ ARCANE_SERVICE_INTERFACE_NS

#define ARCANE_SERVICE_INTERFACE_NS (   ainterface_ns,
  ainterface 
)     Arcane::Internal::ServiceInterfaceRegisterer<ainterface_ns :: ainterface>(#ainterface_ns,#ainterface)

Enregistre une interface avec un nom de namespace.

Définition à la ligne 479 du fichier ServiceFactory.h.