14#include "arcane/utils/List.h"
16#include "arcane/IServiceInfo.h"
17#include "arcane/ServiceFactory.h"
18#include "arcane/ServiceInstance.h"
83 : m_service_info(si){}
92 Int32 v = std::atomic_fetch_add(&m_nb_ref,-1);
98 void destroyInstance()
100 m_true_instance.reset();
103 IServiceInfo* serviceInfo()
const override {
return m_service_info; }
106 void addInstance(ServiceInstanceRef instance)
override
108 m_instances.add(instance);
111 IServiceInfo* m_service_info;
112 List<ServiceInstanceRef> m_instances;
113 ServiceInstanceRef m_true_instance;
114 std::atomic<Int32> m_nb_ref = 0;
127 x->setTrueInstance(si);
128 return makeRef<ISingletonServiceInstance>(x);
146 Int32 v = std::atomic_fetch_add(&m_nb_ref,-1);
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.
Instances des services singletons.
ServiceInstanceCollection interfaceInstances() override
Liste des instances des interfaces implémentées par le singleton.
void removeReference() override
Supprime une référence.
void addReference() override
Ajoute une référence.
Ref< ISingletonServiceInstance > createSingletonServiceInstance(const ServiceBuildInfoBase &sbib) override
Créé un service singleton.
Informations pour créer un service.
Référence sur une instance de service.
Collection< ServiceInstanceRef > ServiceInstanceCollection
Collection d'instances de services.