fawkes::LockMap< KeyType, ValueType, LessKey > Class Template Reference
[Fawkes Core Library]

Map with a lock. More...

#include <core/utils/lock_map.h>

Inheritance diagram for fawkes::LockMap< KeyType, ValueType, LessKey >:

List of all members.


Public Member Functions

 LockMap ()
 Constructor.
 LockMap (const LockMap< KeyType, ValueType, LessKey > &lm)
 Copy constructor.
virtual ~LockMap ()
 Destructor.
void lock ()
 Lock list.
bool try_lock ()
 Try to lock list.
void unlock ()
 Unlock list.
RefPtr< Mutexmutex () const
 Get access to the internal mutex.
void erase_locked (const KeyType &key)
 Remove item with lock.

Detailed Description

template<typename KeyType, typename ValueType, typename LessKey = std::less<KeyType>>
class fawkes::LockMap< KeyType, ValueType, LessKey >

Map with a lock.

This class provides a map that has an intrinsic lock. The lock can be applied with the regular locking methods.

See also:
Mutex
Author:
Tim Niemueller

Definition at line 37 of file lock_map.h.


Constructor & Destructor Documentation

template<typename KeyType , typename ValueType , typename LessKey >
fawkes::LockMap< KeyType, ValueType, LessKey >::LockMap (  )  [inline]

Constructor.

Definition at line 70 of file lock_map.h.

template<typename KeyType, typename ValueType, typename LessKey>
fawkes::LockMap< KeyType, ValueType, LessKey >::LockMap ( const LockMap< KeyType, ValueType, LessKey > &  lm  )  [inline]

Copy constructor.

Parameters:
lm LockMap to copy

Definition at line 79 of file lock_map.h.

template<typename KeyType , typename ValueType , typename LessKey >
fawkes::LockMap< KeyType, ValueType, LessKey >::~LockMap (  )  [inline, virtual]

Destructor.

Definition at line 87 of file lock_map.h.


Member Function Documentation

template<typename KeyType, typename ValueType , typename LessKey >
void fawkes::LockMap< KeyType, ValueType, LessKey >::erase_locked ( const KeyType &  key  )  [inline]

Remove item with lock.

The map is automatically locked and unlocked during the removal.

Parameters:
key key of the value to erase

Definition at line 126 of file lock_map.h.

Referenced by fawkes::BlackBoardNetworkHandler::client_disconnected().

template<typename KeyType , typename ValueType , typename LessKey >
void fawkes::LockMap< KeyType, ValueType, LessKey >::lock (  )  [inline]

Lock list.

Definition at line 94 of file lock_map.h.

Referenced by fawkes::FawkesNetworkServerThread::add_handler(), WorldModelNetworkThread::ball_pos_rcvd(), fawkes::WorldInfoDataContainer::check_timeout(), fawkes::BlackBoardNetworkHandler::client_disconnected(), fawkes::FawkesNetworkClient::deregister_handler(), FvBaseThread::finalize(), fawkes::FawkesNetworkServerThread::force_send(), fawkes::WorldInfoDataContainer::get_ball_pos_global(), fawkes::WorldInfoDataContainer::get_ball_pos_relative(), fawkes::WorldInfoDataContainer::get_hosts(), fawkes::PluginManager::get_loaded_plugins(), fawkes::WorldInfoDataContainer::get_opponent_pos(), fawkes::WorldInfoDataContainer::get_robot_pose(), WorldModelNetworkThread::global_ball_pos_rcvd(), fawkes::PluginManager::load(), WorldModelNetworkThread::loop(), fawkes::FawkesNetworkServerThread::loop(), fawkes::BlackBoardNetworkHandler::loop(), FvBaseThread::loop(), WorldModelNetworkThread::opponent_disapp_rcvd(), fawkes::WorldInfoDataContainer::opponent_disappeared(), WorldModelNetworkThread::opponent_pose_rcvd(), WorldModelNetworkThread::pose_rcvd(), FvBaseThread::register_for_camera(), FvBaseThread::register_for_raw_camera(), fawkes::FawkesNetworkClient::register_handler(), fawkes::FawkesNetworkServerThread::remove_handler(), fawkes::WorldInfoDataContainer::set_ball_pos(), fawkes::WorldInfoDataContainer::set_ball_velocity(), fawkes::WorldInfoDataContainer::set_opponent_pos(), fawkes::WorldInfoDataContainer::set_robot_pose(), fawkes::WorldInfoDataContainer::set_robot_velocity(), FawkesThreadManager::try_recover(), fawkes::PluginManager::unload(), FvBaseThread::unregister_thread(), and WorldModelMultiCopyFuser::~WorldModelMultiCopyFuser().

template<typename KeyType , typename ValueType , typename LessKey >
bool fawkes::LockMap< KeyType, ValueType, LessKey >::try_lock (  )  [inline]

Try to lock list.

Returns:
true, if the lock has been aquired, false otherwise.

Definition at line 105 of file lock_map.h.

template<typename KeyType , typename ValueType , typename LessKey >
void fawkes::LockMap< KeyType, ValueType, LessKey >::unlock (  )  [inline]

Unlock list.

Definition at line 114 of file lock_map.h.

Referenced by fawkes::FawkesNetworkServerThread::add_handler(), WorldModelNetworkThread::ball_pos_rcvd(), fawkes::WorldInfoDataContainer::check_timeout(), fawkes::BlackBoardNetworkHandler::client_disconnected(), fawkes::FawkesNetworkClient::deregister_handler(), FvBaseThread::finalize(), fawkes::FawkesNetworkServerThread::force_send(), fawkes::WorldInfoDataContainer::get_ball_pos_global(), fawkes::WorldInfoDataContainer::get_ball_pos_relative(), fawkes::WorldInfoDataContainer::get_hosts(), fawkes::PluginManager::get_loaded_plugins(), fawkes::WorldInfoDataContainer::get_opponent_pos(), fawkes::WorldInfoDataContainer::get_robot_pose(), WorldModelNetworkThread::global_ball_pos_rcvd(), fawkes::PluginManager::load(), WorldModelNetworkThread::loop(), fawkes::FawkesNetworkServerThread::loop(), fawkes::BlackBoardNetworkHandler::loop(), FvBaseThread::loop(), WorldModelNetworkThread::opponent_disapp_rcvd(), fawkes::WorldInfoDataContainer::opponent_disappeared(), WorldModelNetworkThread::opponent_pose_rcvd(), WorldModelNetworkThread::pose_rcvd(), FvBaseThread::register_for_camera(), FvBaseThread::register_for_raw_camera(), fawkes::FawkesNetworkClient::register_handler(), fawkes::FawkesNetworkServerThread::remove_handler(), fawkes::WorldInfoDataContainer::set_ball_pos(), fawkes::WorldInfoDataContainer::set_ball_velocity(), fawkes::WorldInfoDataContainer::set_opponent_pos(), fawkes::WorldInfoDataContainer::set_robot_pose(), fawkes::WorldInfoDataContainer::set_robot_velocity(), FawkesThreadManager::try_recover(), fawkes::PluginManager::unload(), FvBaseThread::unregister_thread(), and WorldModelMultiCopyFuser::~WorldModelMultiCopyFuser().


The documentation for this class was generated from the following file: