46class ServiceFinderBase2T
52 : m_application(app), m_service_build_info_base(sbi)
56 virtual ~ServiceFinderBase2T(){}
66 ARCCORE_DEPRECATED_2019(
"Use createReference() instead")
69 return _create(name,m_service_build_info_base);
79 return _createReference(name,m_service_build_info_base);
92 ARCCORE_DEPRECATED_2019(
"Use createReference() instead")
95 ISubDomain* sd = m_service_build_info_base.subDomain();
113 ISubDomain* sd = m_service_build_info_base.subDomain();
128 IServiceMng* sm = m_service_build_info_base.serviceParent()->serviceMng();
137 return m->instance().
get();
151 ARCCORE_DEPRECATED_2019(
"Use createAll(Array<ServiceRef<InterfaceType>>&) instead")
152 virtual
void createAll(Array<InterfaceType*>& instances)
154 _createAll(instances,m_service_build_info_base);
162 return _createAll(m_service_build_info_base);
167 SharedArray<FactoryType*> factories()
169 SharedArray<FactoryType*> m_factories;
178 return m_factories.constView();
181 void getServicesNames(Array<String>& names)
const
184 IServiceFactory2* sf2 = *j;
185 IServiceFactory2T<InterfaceType>* true_factory =
dynamic_cast< IServiceFactory2T<InterfaceType>*
>(sf2);
187 IServiceInfo* si = sf2->serviceInfo();
188 names.add(si->localName());
195 InterfaceType* _create(
const String& name,
const ServiceBuildInfoBase& sbib)
197 return _createReference(name,sbib)._release();
200 Ref<InterfaceType> _createReference(
const String& name,
const ServiceBuildInfoBase& sbib)
203 Internal::IServiceFactory2* sf2 = *j;
204 IServiceInfo* s = sf2->serviceInfo();
205 if (s->localName()!=name)
207 IServiceFactory2T<InterfaceType>* m =
dynamic_cast< IServiceFactory2T<InterfaceType>*
>(sf2);
210 Ref<InterfaceType> tt = m->createServiceReference(sbib);
218 void _createAll(Array<InterfaceType*>& instances,
const ServiceBuildInfoBase& sbib)
220 UniqueArray<Ref<InterfaceType>> ref_instances = _createAll(sbib);
221 for(
auto& x : ref_instances )
222 instances.add(x._release());
225 UniqueArray<Ref<InterfaceType>> _createAll(
const ServiceBuildInfoBase& sbib)
227 UniqueArray<Ref<InterfaceType>> instances;
229 Internal::IServiceFactory2* sf2 = *j;
230 IServiceFactory2T<InterfaceType>* m =
dynamic_cast< IServiceFactory2T<InterfaceType>*
>(sf2);
232 Ref<InterfaceType> tt = m->createServiceReference(sbib);
243 IApplication* m_application;
244 ServiceBuildInfoBase m_service_build_info_base;
Interface du gestionnaire d'un sous-domaine.