Fawkes API  Fawkes Development Version
fawkes::LockSet< KeyType, LessKey > Class Template Reference

Set with a lock. More...

#include <>>

Inheritance diagram for fawkes::LockSet< KeyType, LessKey >:

Public Types

typedef std::set< KeyType, LessKey >::iterator iterator
 Iterator. More...
 

Public Member Functions

 LockSet ()
 Constructor. More...
 
 LockSet (const LockSet< KeyType, LessKey > &lm)
 Copy constructor. More...
 
virtual ~LockSet ()
 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...
 
std::pair< iterator, bool > insert_locked (const KeyType &key)
 Insert item with lock. More...
 
void erase_locked (const KeyType &key)
 Remove item with lock. More...
 
LockSet< KeyType, LessKey > & operator= (const LockSet< KeyType, LessKey > &ll)
 Copy values from another LockSet. More...
 
LockSet< KeyType, LessKey > & operator= (const std::set< KeyType, LessKey > &l)
 Copy values from a standard set. More...
 

Detailed Description

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

Set with a lock.

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

See also
Mutex
Author
Tim Niemueller

Definition at line 36 of file lock_set.h.

Member Typedef Documentation

◆ iterator

template<typename KeyType, typename LessKey = std::less<KeyType>>
typedef std::set<KeyType, LessKey>::iterator fawkes::LockSet< KeyType, LessKey >::iterator

Iterator.

Definition at line 49 of file lock_set.h.

Constructor & Destructor Documentation

◆ LockSet() [1/2]

template<typename KeyType , typename LessKey >
fawkes::LockSet< KeyType, LessKey >::LockSet ( )

Constructor.

Definition at line 76 of file lock_set.h.

◆ LockSet() [2/2]

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

Copy constructor.

Parameters
lmLockSet to copy

Definition at line 85 of file lock_set.h.

◆ ~LockSet()

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

Destructor.

Definition at line 93 of file lock_set.h.

Member Function Documentation

◆ erase_locked()

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

Remove item with lock.

The set is automatically locked and unlocked during the removal.

Parameters
keykey of the value to erase

Definition at line 148 of file lock_set.h.

◆ insert_locked()

template<typename KeyType, typename LessKey >
std::pair< typename LockSet< KeyType, LessKey >::iterator, bool > fawkes::LockSet< KeyType, LessKey >::insert_locked ( const KeyType &  key)

Insert item with lock.

The set is automatically locked and unlocked during the removal.

Parameters
keykey of the value to insert
Returns
iterator to inserted item

Definition at line 133 of file lock_set.h.

◆ lock()

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

◆ mutex()

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

Get access to the internal mutex.

Can be used with MutexLocker.

Returns
internal mutex

Definition at line 162 of file lock_set.h.

◆ operator=() [1/2]

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

Copy values from another LockSet.

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

Parameters
lllock set to copy
Returns
reference to this instance

Definition at line 176 of file lock_set.h.

◆ operator=() [2/2]

template<typename KeyType, typename LessKey>
LockSet< KeyType, LessKey > & fawkes::LockSet< KeyType, LessKey >::operator= ( const std::set< KeyType, LessKey > &  l)

Copy values from a standard set.

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

Parameters
lset to copy
Returns
reference to this instance

Definition at line 200 of file lock_set.h.

◆ try_lock()

template<typename KeyType , typename LessKey >
bool fawkes::LockSet< KeyType, 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_set.h.

Referenced by fawkes::LockSet< std::string >::try_lock().

◆ unlock()

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

Unlock list.

Definition at line 120 of file lock_set.h.

Referenced by fawkes::LockSet< std::string >::operator=(), and fawkes::LockSet< std::string >::unlock().


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