An interface for including custom factories in an Injector.
More...
#include <sauce/provider.h>
|
typedef Abstract | RequestsSelfInjection |
|
typedef i::Key< Dependency >::Iface | Provides |
| Indicates to template magic that this type exposes sauce::shared_ptr<Provides> get().
|
|
|
class | i::DisposalDeleter< Iface, Abstract > |
|
template<typename Dependency>
class sauce::AbstractProvider< Dependency >
An interface for including custom factories in an Injector.
◆ ~AbstractProvider()
template<typename Dependency >
◆ get()
template<typename Dependency >
Provide an Iface.
A naked instance pointer is obtained with provide(), and wrapped in a shared_ptr. It is also given a custom deleter, to dispose of the naked pointer with dispose(Iface *).
Implements sauce::Provider< Dependency >.
79 {
80 sauce::shared_ptr<Abstract> self = weak.lock();
81 assert(self.get() == this);
82 Deleter deleter(sauce::static_pointer_cast<Abstract>(self));
83 return sauce::shared_ptr<Iface>(provide(), deleter);
84 }
◆ setSelf()
template<typename Dependency >
68 {
69 assert(weak.lock().get() == this);
70 this->weak = weak;
71 }
The documentation for this class was generated from the following file: