1 #ifndef SAUCE_INTERNAL_LOCKER_FACTORY_H_
2 #define SAUCE_INTERNAL_LOCKER_FACTORY_H_
23 template<
typename Locker>
25 sauce::auto_ptr<Locker> locker;
47 virtual sauce::auto_ptr<Lock> createLock() = 0;
52 sauce::auto_ptr<Lock> createLock() {
53 sauce::auto_ptr<Lock> lock(
new NullLock());
58 template<
typename Locker,
typename Lockable>
67 sauce::auto_ptr<Lock> createLock() {
68 sauce::auto_ptr<Locker> locker(
new Locker(lockable));
76 namespace i = ::sauce::internal;
80 #endif // SAUCE_INTERNAL_LOCKER_FACTORY_H_
Not a lock at all, but used when no synchronization is configured.
Definition: locker_factory.h:18
An adapter to hide the type of the given Locker.
Definition: locker_factory.h:24
Definition: locker_factory.h:59
Facility to create opaque RAII guards, intended to be synchronization lockers.
Definition: locker_factory.h:43
Definition: locker_factory.h:50
An RAII wrapper to hide locker details.
Definition: locker_factory.h:10