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_