[/ (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 ``] [/==========================================================================================] namespace boost { template class basic_lockable_adapter; template class lockable_adapter; template class timed_lockable_adapter; template class shared_lockable_adapter; template class upgrade_lockable_adapter; } [section Template Class `basic_lockable_adapter<>`] template 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 class lockable_adapter : : public basic_lockable_adapter { public: lockable_adapter() {} bool try_lock(); }; [endsect] [section Template Class `timed_lockable_adapter<>`] template class timed_lockable_adapter : public lockable_adapter { public: timed_lockable_adapter() {} bool try_lock_until(system_time const & abs_time); template bool try_lock_for(TimeDuration const & relative_time); void lock_until(system_time const & abs_time); template void lock_for(TimeDuration const & relative_time); }; [endsect] [section Template Class `shared_lockable_adapter<>`] template class shared_lockable_adapter : public timed_lockable_adapter { public: shared_lockable_adapter() {} void lock_shared(); bool try_lock_shared(); void unlock_shared(); bool try_lock_shared_until(system_time const& t); template bool try_lock_shared_for(TimeDuration const& t); template void lock_shared_for(TimeDuration const& t); void lock_shared_until(system_time const& t); }; [endsect] [section Template Class `upgrade_lockable_adapter<>`] template class upgrade_lockable_adapter : public shared_lockable_adapter{ 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 bool try_lock_upgrade_for(TimeDuration const&t); void lock_upgrade_until(system_time const&t); template void lock_upgrade_for(TimeDuration const&t); }; [endsect] [endsect]