12#ifndef ARCANE_CORE_ISERVICEFACTORY_H
13#define ARCANE_CORE_ISERVICEFACTORY_H
17#include "arcane/utils/Ref.h"
118class ARCANE_CORE_EXPORT AbstractServiceFactory
123 AbstractServiceFactory()
134 std::atomic<Int32> m_nb_ref;
144template <
typename InterfaceType>
146:
public AbstractServiceFactory
Declarations of Arcane's general types.
Information about a service factory.
virtual bool isAutoload() const =0
true if the service is a module and must be loaded automatically
virtual ~IServiceFactoryInfo()
Release resources.
virtual bool isSingleton() const =0
true if the service is a singleton service (a single instance)
virtual IServiceInfo * serviceInfo() const =0
Information about the service that can be created by this factory.
Interface for service or module information.
void removeReference() override
Remove a reference.
void addReference() override
Add a reference.
Factory for a service implementing the InterfaceType interface.
virtual void addReference()=0
Add a reference.
virtual IServiceInfo * serviceInfo() const =0
Returns the IServiceInfo associated with this factory.
virtual void removeReference()=0
Remove a reference.
virtual ServiceInstanceRef createServiceInstance(const ServiceBuildInfoBase &sbi)=0
Create a service instance from the info in sbi.
virtual Ref< ISingletonServiceInstance > createSingletonServiceInstance(const ServiceBuildInfoBase &sbi)=0
Create an instance of a singleton service.
virtual IServiceInfo * serviceInfo() const =0
Returns the IServiceInfo associated with this factory.
Reference to an instance.
Information for creating a service.
Reference to a service instance.
Internal types of Arcane.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --