Sauce-0.10.1
A C++ Dependency Injection Framework
Classes | Public Types | Public Member Functions | Friends | List of all members
sauce::internal::MethodBinding< Dependency, Signature > Class Template Reference
Inheritance diagram for sauce::internal::MethodBinding< Dependency, Signature >:
Inheritance graph
[legend]
Collaboration diagram for sauce::internal::MethodBinding< Dependency, Signature >:
Collaboration graph
[legend]

Public Types

typedef Inject::Method Method
 
typedef ResolvedBinding
< Dependency >::BindingPtr 
BindingPtr
 
- Public Types inherited from sauce::internal::Binding< Dependency, NoScope >
typedef Key< Dependency >
::Normalized 
Dependency
 
typedef Key< Dependency >::Ptr IfacePtr
 
typedef ResolvedBinding
< Dependency >::BindingPtr 
BindingPtr
 
- Public Types inherited from sauce::internal::ResolvedBinding< Dependency >
typedef Key< Dependency >::Ptr IfacePtr
 
typedef sauce::shared_ptr
< ResolvedBinding< Dependency > > 
BindingPtr
 

Public Member Functions

 MethodBinding (Method method)
 
void inject (IfacePtr &injected, BindingPtr, InjectorPtr injector) const
 Inject an Iface.
 
- Public Member Functions inherited from sauce::internal::Binding< Dependency, NoScope >
std::string getName () const
 The dynamic name of this binding.
 
void setName (std::string const name)
 Set the dynamic name of this binding.
 
- Public Member Functions inherited from sauce::internal::ResolvedBinding< Dependency >
NamedTypeId getKey () const
 The TypeId of the Dependency template parameter.
 
virtual void validateAcyclic (sauce::shared_ptr< Injector >, TypeIds &) const =0
 Establish that further dependencies do not introduce cycles with ones already accumulated.
 
virtual void get (IfacePtr &, BindingPtr, sauce::shared_ptr< Injector >) const =0
 Get an Iface, using the given injector to provide dependencies.
 
- Public Member Functions inherited from sauce::internal::OpaqueBinding
virtual void eagerlyInject (OpaqueBindingPtr, sauce::shared_ptr< Injector >) const =0
 Provide, but do not return the hidden interface.
 

Friends

class MethodBindingFriend
 

Additional Inherited Members

- Protected Member Functions inherited from sauce::internal::InjectorFriend
template<typename Dependency >
void validateAcyclicHelper (InjectorPtr injector, TypeIds &ids, std::string const name) const
 
template<typename Dependency >
void injectHelper (typename Key< Dependency >::Ptr &injected, InjectorPtr injector, std::string const name) const
 
template<typename Dependency >
void cache (InjectorPtr injector, typename Key< Dependency >::Ptr injected, i::TypeId scope) const
 
template<typename Dependency >
bool probe (InjectorPtr injector, typename Key< Dependency >::Ptr &injected, i::TypeId scope) const
 

Member Function Documentation

template<typename Dependency , typename Signature >
void sauce::internal::MethodBinding< Dependency, Signature >::inject ( IfacePtr &  ,
BindingPtr  ,
InjectorPtr   
) const
inlinevirtual

Inject an Iface.

The strategy used is left to derived types.

Implements sauce::internal::Binding< Dependency, NoScope >.

{
typename InjectParameters::Passed passed(*this, injector);
applyMethod<InjectParameters, Signature>(*injected.get(), method, passed);
}

The documentation for this class was generated from the following file: