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>
17template<
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();
35namespace i = ::sauce::internal;
The base class of all actual binding implementations.
Definition: binding.h:22
std::string getName() const
The dynamic name of this binding.
Definition: binding.h:103
A complete specification of a dependency request.
Definition: key.h:15
An injection that provides from the configured provider.
Definition: provider_binding.h:18