|
typedef ResolvedBinding< Dependency >::BindingPtr | BindingPtr |
|
typedef Key< Dependency >::Normalized | Dependency |
|
typedef Key< Dependency >::Ptr | IfacePtr |
|
typedef ResolvedBinding< Dependency >::BindingPtr | BindingPtr |
|
typedef Key< Dependency >::Ptr | IfacePtr |
|
typedef sauce::shared_ptr< ResolvedBinding< Dependency > > | BindingPtr |
|
|
void | inject (IfacePtr &injected, BindingPtr binding, InjectorPtr injector) const |
| Inject an Iface. More...
|
|
void | dispose (Iface *iface) const |
|
std::string | getName () const |
| The dynamic name of this binding.
|
|
void | setName (std::string const name) |
| Set the dynamic name of this binding.
|
|
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. More...
|
|
virtual void | get (IfacePtr &, BindingPtr, sauce::shared_ptr< Injector >) const =0 |
| Get an Iface, using the given injector to provide dependencies. More...
|
|
virtual bool | isModifier () const |
| Does this binding modify an existing value? More...
|
|
virtual void | eagerlyInject (OpaqueBindingPtr, sauce::shared_ptr< Injector >) const =0 |
| Provide, but do not return the hidden interface. More...
|
|
|
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 |
|
template<typename Dependency , typename Scope , typename Constructor , typename Allocator >
void sauce::internal::NewBinding< Dependency, Scope, Constructor, Allocator >::inject |
( |
IfacePtr & |
injected, |
|
|
BindingPtr |
binding, |
|
|
InjectorPtr |
injector |
|
) |
| const |
|
inlinevirtual |
Inject an Iface.
A naked instance pointer is allocated and wrapped in a shared_ptr. It is also given a custom deleter, to dispose of the naked pointer with dispose(Iface *).
Implements sauce::internal::Binding< Dependency, Scope >.
124 typename InjectParameters::Passed passed(*
this, injector);
125 Deleter deleter(sauce::static_pointer_cast<NewBinding_>(binding));
126 ImplPtr impl(applyConstructor<InjectParameters, Constructor, Allocator>(passed), deleter);
127 SelfInjector<Impl> selfInjector;
128 selfInjector.setSelf(impl);
129 typedef Named<Impl, typename i::Key<Dependency>::Name> NormalizedImpl;
130 this->
template injectHelper<NormalizedImpl>(impl, injector, this->
getName());
131 injected = sauce::static_pointer_cast<Iface>(impl);
std::string getName() const
The dynamic name of this binding.
Definition: binding.h:103
The documentation for this class was generated from the following file: