123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- [/
- (C) Copyright 2008-2013 Vicente J. Botet Escriba
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
- ]
- [/==========================================================================================]
- [section:lockable_adapter_hpp Header `<boost/thread/lockable_adapter.hpp>`]
- [/==========================================================================================]
- namespace boost {
- template <typename Lockable> class basic_lockable_adapter;
- template <typename Lockable> class lockable_adapter;
- template <typename TimedLock> class timed_lockable_adapter;
- template <typename SharableLock> class shared_lockable_adapter;
- template <typename UpgradableLock> class upgrade_lockable_adapter;
- }
- [section Template Class `basic_lockable_adapter<>`]
- template <typename Lockable>
- class basic_lockable_adapter {
- public:
- basic_lockable_adapter(basic_lockable_adapter const&) = delete
- basic_lockable_adapter& opearator=(basic_lockable_adapter const&) = delete
- typedef Lockable mutex_type;
- basic_lockable_adapter() {}
- void lock();
- void unlock();
- bool try_lock();
- };
- [endsect]
- [section Template Class `lockable_adapter<>`]
- template <typename Lockable>
- class lockable_adapter : : public basic_lockable_adapter<Lockable> {
- public:
- lockable_adapter() {}
- bool try_lock();
- };
- [endsect]
- [section Template Class `timed_lockable_adapter<>`]
- template <typename TimedLock>
- class timed_lockable_adapter : public lockable_adapter<TimedLock> {
- public:
- timed_lockable_adapter() {}
- bool try_lock_until(system_time const & abs_time);
- template<typename TimeDuration>
- bool try_lock_for(TimeDuration const & relative_time);
-
- void lock_until(system_time const & abs_time);
- template<typename TimeDuration>
- void lock_for(TimeDuration const & relative_time);
- };
- [endsect]
- [section Template Class `shared_lockable_adapter<>`]
- template <typename SharableLock>
- class shared_lockable_adapter : public timed_lockable_adapter<SharableLock> {
- public:
- shared_lockable_adapter() {}
- void lock_shared();
- bool try_lock_shared();
- void unlock_shared();
- bool try_lock_shared_until(system_time const& t);
- template<typename TimeDuration>
- bool try_lock_shared_for(TimeDuration const& t);
-
- template<typename TimeDuration>
- void lock_shared_for(TimeDuration const& t);
- void lock_shared_until(system_time const& t);
- };
- [endsect]
- [section Template Class `upgrade_lockable_adapter<>`]
- template <typename UpgradableLock>
- class upgrade_lockable_adapter : public shared_lockable_adapter<UpgradableLock>{
- public:
- upgrade_lockable_adapter();
- void lock_upgrade();
- bool try_lock_upgrade();
- void unlock_upgrade();
- void unlock_upgrade_and_lock();
- void unlock_and_lock_upgrade();
- void unlock_and_lock_shared();
- void unlock_upgrade_and_lock_shared();
-
- bool try_lock_upgrade_until(system_time const&t);
- template<typename TimeDuration>
- bool try_lock_upgrade_for(TimeDuration const&t);
- void lock_upgrade_until(system_time const&t);
- template<typename TimeDuration>
- void lock_upgrade_for(TimeDuration const&t);
- };
- [endsect]
- [endsect]
|