12#ifndef ARCANE_ISERVICEFACTORY_H
13#define ARCANE_ISERVICEFACTORY_H
17#include "arcane/utils/Ref.h"
18#include "arcane/ArcaneTypes.h"
104class ARCANE_CORE_EXPORT AbstractServiceFactory
108 AbstractServiceFactory() : m_nb_ref(0){}
113 std::atomic<Int32> m_nb_ref;
122template<
typename InterfaceType>
124:
public AbstractServiceFactory
Informations sur la fabrique d'un service.
virtual bool isAutoload() const =0
vrai si le service est un module et doit être chargé automatiquement
virtual ~IServiceFactoryInfo()
Libère les ressources.
virtual bool isSingleton() const =0
vrai si le service est un service singleton (une seule instance)
virtual IServiceInfo * serviceInfo() const =0
Informations sur le service pouvant être créé par cette fabrique.
Interface des informations d'un service ou d'un module.
void removeReference() override
Supprime une référence.
void addReference() override
Ajoute une référence.
virtual void addReference()=0
Ajoute une référence.
virtual IServiceInfo * serviceInfo() const =0
Retourne le IServiceInfo associé à cette fabrique.
virtual void removeReference()=0
Supprime une référence.
virtual ServiceInstanceRef createServiceInstance(const ServiceBuildInfoBase &sbi)=0
Créé une instance du service à partir des infos de sbi.
virtual Ref< ISingletonServiceInstance > createSingletonServiceInstance(const ServiceBuildInfoBase &sbi)=0
Créé une instance d'un service singleton.
virtual IServiceInfo * serviceInfo() const =0
Retourne le IServiceInfo associé à cette fabrique.
Référence à une instance.
Informations pour créer un service.
Référence sur une instance de service.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-