24 #ifndef __CORE_UTILS_LOCK_MAP_H_ 25 #define __CORE_UTILS_LOCK_MAP_H_ 27 #include <core/threading/mutex.h> 28 #include <core/utils/refptr.h> 34 template <
typename KeyType,
36 typename LessKey = std::less<KeyType> >
37 class LockMap :
public std::map<KeyType, ValueType, LessKey>
55 operator=(
const std::map<KeyType, ValueType, LessKey> &l);
75 template <
typename KeyType,
typename ValueType,
typename LessKey>
77 : __mutex(new
Mutex())
84 template <
typename KeyType,
typename ValueType,
typename LessKey>
86 :
std::map<KeyType, ValueType, LessKey>::map(lm),
92 template <
typename KeyType,
typename ValueType,
typename LessKey>
98 template <
typename KeyType,
typename ValueType,
typename LessKey>
109 template <
typename KeyType,
typename ValueType,
typename LessKey>
118 template <
typename KeyType,
typename ValueType,
typename LessKey>
130 template <
typename KeyType,
typename ValueType,
typename LessKey>
135 std::map<KeyType, ValueType, LessKey>::erase(key);
144 template <
typename KeyType,
typename ValueType,
typename LessKey>
159 template <
typename KeyType,
typename ValueType,
typename LessKey>
167 for (i = ll.begin(); i != ll.end(); ++i) {
183 template <
typename KeyType,
typename ValueType,
typename LessKey>
189 typename std::map<KeyType, ValueType, LessKey>::const_iterator i;
190 for (i = l.begin(); i != l.end(); ++i) {
void erase_locked(const KeyType &key)
Remove item with lock.
void lock() const
Lock list.
LockMap< KeyType, ValueType, LessKey > & operator=(const LockMap< KeyType, ValueType, LessKey > &ll)
Copy values from another LockMap.
Fawkes library namespace.
bool try_lock() const
Try to lock list.
void unlock() const
Unlock list.
RefPtr<> is a reference-counting shared smartpointer.
virtual ~LockMap()
Destructor.
Mutex mutual exclusion lock.
RefPtr< Mutex > mutex() const
Get access to the internal mutex.