Fawkes API  Fawkes Development Version
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
fawkes::LockMultiMap< KeyType, ValueType, LessKey > Class Template Reference

Multi-Map with a lock. More...

#include <>>

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

Public Member Functions

 LockMultiMap ()
 Constructor. More...
 
 LockMultiMap (const LockMultiMap< KeyType, ValueType, LessKey > &lm)
 Copy constructor. More...
 
virtual ~LockMultiMap ()
 Destructor. More...
 
void lock () const
 Lock list. More...
 
bool try_lock () const
 Try to lock list. More...
 
void unlock () const
 Unlock list. More...
 
RefPtr< Mutexmutex () const
 Get access to the internal mutex. More...
 
void erase_locked (const KeyType &key)
 Remove item with lock. More...
 
LockMultiMap< KeyType,
ValueType, LessKey > & 
operator= (const LockMultiMap< KeyType, ValueType, LessKey > &ll)
 Copy values from another LockMultiMap. More...
 
LockMultiMap< KeyType,
ValueType, LessKey > & 
operator= (const std::map< KeyType, ValueType, LessKey > &l)
 Copy values from a standard map. More...
 

Additional Inherited Members

- Public Attributes inherited from std::multimap< K, T >
keys
 STL member. More...
 
elements
 STL member. More...
 

Detailed Description

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

Multi-Map with a lock.

This class provides a multimap 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_multimap.h.

Constructor & Destructor Documentation

template<typename KeyType , typename ValueType , typename LessKey >
fawkes::LockMultiMap< KeyType, ValueType, LessKey >::LockMultiMap ( )

Constructor.

Definition at line 76 of file lock_multimap.h.

template<typename KeyType, typename ValueType, typename LessKey>
fawkes::LockMultiMap< KeyType, ValueType, LessKey >::LockMultiMap ( const LockMultiMap< KeyType, ValueType, LessKey > &  lm)

Copy constructor.

Parameters
lmLockMultiMap to copy

Definition at line 85 of file lock_multimap.h.

template<typename KeyType , typename ValueType , typename LessKey >
fawkes::LockMultiMap< KeyType, ValueType, LessKey >::~LockMultiMap ( )
virtual

Destructor.

Definition at line 93 of file lock_multimap.h.

Member Function Documentation

template<typename KeyType, typename ValueType , typename LessKey >
void fawkes::LockMultiMap< KeyType, ValueType, LessKey >::erase_locked ( const KeyType &  key)

Remove item with lock.

The map is automatically locked and unlocked during the removal.

Parameters
keykey of the value to erase

Definition at line 132 of file lock_multimap.h.

template<typename KeyType , typename ValueType , typename LessKey >
void fawkes::LockMultiMap< KeyType, ValueType, LessKey >::lock ( ) const

Lock list.

Definition at line 100 of file lock_multimap.h.

Referenced by fawkes::LockMultiMap< KeyType, ValueType, LessKey >::operator=().

template<typename KeyType , typename ValueType , typename LessKey >
RefPtr< Mutex > fawkes::LockMultiMap< KeyType, ValueType, LessKey >::mutex ( ) const

Get access to the internal mutex.

Can be used with MutexLocker.

Returns
internal mutex

Definition at line 146 of file lock_multimap.h.

template<typename KeyType, typename ValueType, typename LessKey>
LockMultiMap< KeyType, ValueType, LessKey > & fawkes::LockMultiMap< KeyType, ValueType, LessKey >::operator= ( const LockMultiMap< KeyType, ValueType, LessKey > &  ll)

Copy values from another LockMultiMap.

Copies the values one by one. Both instances are locked during the copying and this instance is cleared before copying.

Parameters
llmap to copy
Returns
reference to this instance

Definition at line 161 of file lock_multimap.h.

References fawkes::LockMultiMap< KeyType, ValueType, LessKey >::lock(), and fawkes::LockMultiMap< KeyType, ValueType, LessKey >::unlock().

template<typename KeyType, typename ValueType, typename LessKey>
LockMultiMap< KeyType, ValueType, LessKey > & fawkes::LockMultiMap< KeyType, ValueType, LessKey >::operator= ( const std::map< KeyType, ValueType, LessKey > &  l)

Copy values from a standard map.

Copies the values one by one. This instance is locked during the copying and cleared.

Parameters
lmap to copy
Returns
reference to this instance

Definition at line 185 of file lock_multimap.h.

template<typename KeyType , typename ValueType , typename LessKey >
bool fawkes::LockMultiMap< KeyType, ValueType, LessKey >::try_lock ( ) const

Try to lock list.

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

Definition at line 111 of file lock_multimap.h.

template<typename KeyType , typename ValueType , typename LessKey >
void fawkes::LockMultiMap< KeyType, ValueType, LessKey >::unlock ( ) const

Unlock list.

Definition at line 120 of file lock_multimap.h.

Referenced by fawkes::LockMultiMap< KeyType, ValueType, LessKey >::operator=().


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