Arcane  v3.15.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::DependencyInjection::Injector

Injecteur. Plus de détails...

+ Graphe de collaboration de Arcane::DependencyInjection::Injector:

Classes

class  FactoryVisitorFunctor
 
class  IFactoryVisitorFunctor
 Interface d'un fonctor pour appliqué à chaque fabrique. Plus de détails...
 
class  IInstanceVisitorFunctor
 Interface d'un fonctor pour appliqué à chaque fabrique. Plus de détails...
 
class  Impl
 
class  InjectorHelper
 
class  InjectorHelper< Ref< PointerType > >
 Spécialisation pour les 'Ref'. Plus de détails...
 
class  InstanceVisitorFunctor
 

Fonctions membres publiques

 Injector (const Injector &)=delete
 
Injectoroperator= (const Injector &)=delete
 
template<typename Type >
void bind (Type iref, const String &name=String())
 
template<typename Type >
Type get (const String &name=String())
 
template<typename InterfaceType >
Ref< InterfaceType > createInstance (const String &implementation_name, bool allow_null=false)
 Créé une instance implémentant une interface.
 
String printFactories () const
 
void fillWithGlobalFactories ()
 

Types privés

using FactoryFilterFunc = bool(*)(impl::IInstanceFactory *)
 

Fonctions membres privées

void _add (IInjectedInstance *instance)
 
void _iterateInstances (const std::type_info &t_info, const String &instance_name, IInstanceVisitorFunctor *lambda)
 
Integer _nbValue () const
 
IInjectedInstance_value (Integer i) const
 
void _iterateFactories (const String &factory_name, IFactoryVisitorFunctor *functor) const
 Itère sur les fabriques et applique le fonctor functor.
 
Integer _nbFactory () const
 
impl::IInstanceFactory_factory (Integer i) const
 
template<typename InterfaceType >
Ref< InterfaceType > _getRef (const String &instance_name)
 
template<typename Type >
Type _getValue (const String &instance_name)
 
void _printValidImplementationAndThrow (const TraceInfo &ti, const String &implementation_name, FactoryFilterFunc filter_func)
 
void _doError (const TraceInfo &ti, const String &message)
 

Attributs privés

Implm_p = nullptr
 

Description détaillée

Injecteur.

Définition à la ligne 561 du fichier DependencyInjection.h.

Documentation des définitions de type membres

◆ FactoryFilterFunc

using Arcane::DependencyInjection::Injector::FactoryFilterFunc = bool (*)(impl::IInstanceFactory*)
private

Définition à la ligne 564 du fichier DependencyInjection.h.

Documentation des constructeurs et destructeur

◆ Injector()

Arcane::DependencyInjection::Injector::Injector ( )

Définition à la ligne 79 du fichier DependencyInjection.cc.

◆ ~Injector()

Arcane::DependencyInjection::Injector::~Injector ( )

Définition à la ligne 88 du fichier DependencyInjection.cc.

Documentation des fonctions membres

◆ _add()

void Arcane::DependencyInjection::Injector::_add ( IInjectedInstance instance)
private

Définition à la ligne 97 du fichier DependencyInjection.cc.

◆ _doError()

void Arcane::DependencyInjection::Injector::_doError ( const TraceInfo ti,
const String message 
)
private

Définition à la ligne 345 du fichier DependencyInjection.cc.

◆ _factory()

impl::IInstanceFactory * Arcane::DependencyInjection::Injector::_factory ( Integer  i) const
private

Définition à la ligne 133 du fichier DependencyInjection.cc.

◆ _getRef()

template<typename InterfaceType >
Ref< InterfaceType > Arcane::DependencyInjection::Injector::_getRef ( const String instance_name)
inlineprivate

Définition à la ligne 755 du fichier DependencyInjection.h.

◆ _getValue()

template<typename Type >
Type Arcane::DependencyInjection::Injector::_getValue ( const String instance_name)
inlineprivate

Définition à la ligne 772 du fichier DependencyInjection.h.

◆ _iterateFactories()

void Arcane::DependencyInjection::Injector::_iterateFactories ( const String factory_name,
IFactoryVisitorFunctor functor 
) const
private

Itère sur les fabriques et applique le fonctor functor.

On s'arrête dès qu'un appel à functor retourne true.

Si factory_name n'est pas nul, seules les fabriques pour lequelles FactoryInfo::hasName(factory_name) est vrai sont utilisées.

Définition à la ligne 298 du fichier DependencyInjection.cc.

◆ _iterateInstances()

void Arcane::DependencyInjection::Injector::_iterateInstances ( const std::type_info &  t_info,
const String instance_name,
IInstanceVisitorFunctor lambda 
)
private

Définition à la ligne 325 du fichier DependencyInjection.cc.

◆ _nbFactory()

Integer Arcane::DependencyInjection::Injector::_nbFactory ( ) const
private

Définition à la ligne 124 du fichier DependencyInjection.cc.

◆ _nbValue()

Integer Arcane::DependencyInjection::Injector::_nbValue ( ) const
private

Définition à la ligne 106 du fichier DependencyInjection.cc.

◆ _printValidImplementationAndThrow()

void Arcane::DependencyInjection::Injector::_printValidImplementationAndThrow ( const TraceInfo ti,
const String implementation_name,
FactoryFilterFunc  filter_func 
)
private

Définition à la ligne 354 du fichier DependencyInjection.cc.

◆ _value()

IInjectedInstance * Arcane::DependencyInjection::Injector::_value ( Integer  i) const
private

Définition à la ligne 115 du fichier DependencyInjection.cc.

◆ bind()

template<typename Type >
void Arcane::DependencyInjection::Injector::bind ( Type  iref,
const String name = String() 
)
inline

Définition à la ligne 668 du fichier DependencyInjection.h.

◆ createInstance()

template<typename InterfaceType >
Ref< InterfaceType > Arcane::DependencyInjection::Injector::createInstance ( const String implementation_name,
bool  allow_null = false 
)
inline

Créé une instance implémentant une interface.

Créé et retourne une instance dont l'implémentation est implementation_name et qui implémente l'interface InterfaceType.

Si l'implémentation implementation_name n'est pas trouvé ou si elle n'implémente pas l'interface InterfaceType, le comportement est le suivant:

  • si allow_null vaut true, retourne une référence nulle,
  • si allow_null vaut false, lève une exception de type FatalErrorException.

Définition à la ligne 693 du fichier DependencyInjection.h.

◆ fillWithGlobalFactories()

void Arcane::DependencyInjection::Injector::fillWithGlobalFactories ( )

Définition à la ligne 251 du fichier DependencyInjection.cc.

◆ get()

template<typename Type >
Type Arcane::DependencyInjection::Injector::get ( const String name = String())
inline

Définition à la ligne 674 du fichier DependencyInjection.h.

◆ printFactories()

String Arcane::DependencyInjection::Injector::printFactories ( ) const

Définition à la ligne 274 du fichier DependencyInjection.cc.

Documentation des données membres

◆ m_p

Impl* Arcane::DependencyInjection::Injector::m_p = nullptr
private

Définition à la ligne 729 du fichier DependencyInjection.h.


La documentation de cette classe a été générée à partir des fichiers suivants :