1 #ifndef SAUCE_INTERNAL_PROVIDER_BINDING_H_
2 #define SAUCE_INTERNAL_PROVIDER_BINDING_H_
6 #include <sauce/injector.h>
7 #include <sauce/memory.h>
8 #include <sauce/internal/binding.h>
9 #include <sauce/internal/key.h>
17 template<
typename Dependency,
typename Scope,
typename Prov
ider>
20 typedef typename ResolvedBinding<Dependency>::BindingPtr BindingPtr;
22 void validateAcyclic(InjectorPtr injector, TypeIds & ids)
const {
23 this->
template validateAcyclicHelper<Provider>(injector, ids, this->
getName());
26 void inject(
typename Key<Dependency>::Ptr & injected, BindingPtr binding, InjectorPtr injector)
const {
27 typename Key<Provider>::Ptr provider;
28 this->
template injectHelper<Provider>(provider, injector, binding->getName());
29 injected = provider->get();
35 namespace i = ::sauce::internal;
39 #endif // SAUCE_INTERNAL_PROVIDER_BINDING_H_
std::string getName() const
The dynamic name of this binding.
Definition: binding.h:103
An injection that provides from the configured provider.
Definition: provider_binding.h:18
The base class of all actual binding implementations.
Definition: binding.h:22
A complete specification of a dependency request.
Definition: key.h:15