1 #ifndef SAUCE_MODULES_H_
2 #define SAUCE_MODULES_H_
4 #include <sauce/binder.h>
5 #include <sauce/injector.h>
6 #include <sauce/memory.h>
7 #include <sauce/internal/base_injector.h>
8 #include <sauce/internal/resolved_binding.h>
9 #include <sauce/internal/bindings.h>
10 #include <sauce/internal/implicit_bindings.h>
11 #include <sauce/internal/locker_factory.h>
35 previousBinder(module->binder) {
36 module->binder = binder;
40 module->binder = previousBinder;
44 friend class BinderGuard;
59 template<
typename Iface>
61 return binder->
bind<Iface>();
68 void operator()(Binder & binder)
const {
69 BinderGuard guard(
this, &binder);
81 sauce::shared_ptr<Injector>
createInjector(sauce::auto_ptr<i::LockFactory> lockFactory)
const {
82 sauce::shared_ptr<i::BaseInjector<i::ImplicitBindings> > base(
84 sauce::shared_ptr<Injector> injector(
new Injector(base));
85 injector->setSelfPtr(injector);
118 template<
typename Module>
134 template<
typename Module>
158 template<
typename Locker,
typename Lockable>
168 #endif // SAUCE_MODULES_H_