10#ifndef LIBCWD_PRIVATE_LOCK_INTERFACE_H
11#define LIBCWD_PRIVATE_LOCK_INTERFACE_H
13#ifndef HIDE_FROM_DOXYGEN
14namespace libcwd::_private_ {
16class LockInterfaceBase
19 virtual int try_lock() = 0;
20 virtual void lock() = 0;
21 virtual void unlock() = 0;
22 virtual ~LockInterfaceBase() { }
26class LockInterface :
public LockInterfaceBase
30 virtual int try_lock() {
return mutex_->try_lock(); }
31 virtual void lock() { mutex_->lock(); }
32 virtual void unlock() { mutex_->unlock(); }
35 LockInterface(T* mutex) : mutex_(mutex) { }