A very simple map object that is safe for multiple threads to use at the same time. More...
#include <threadsafe_multimap.h>

Classes | |
| class | iterator_t |
Public Member Functions | |
| int | size (void) |
| how many elements in the map | |
| int | count (IN const K &key) |
| how many elements with the given key | |
| void | insert (IN const K &key, IN const T &t) |
| insert the given object at the given key value | |
| void | remove (IN const K &key) |
| remove (erase) all elements with this key | |
| void | clear (void) |
| clear out (erase) the entire map | |
| void | getIterator (OUT iterator_t &i) |
| get an iterator (points to the first element in the map) | |
| void | getIterator (IN const K &key, OUT iterator_t &i) |
| get an iterator just for a particular key | |
| bool | getNextElement (IO iterator_t &i, OUT K &k, OUT T &t) |
| get next element in map and increment iterator | |
| T * | getNextElementUnsafe (IO iterator_t &i, OUT K &k) |
| get next element without getting a local copy. | |
A very simple map object that is safe for multiple threads to use at the same time.
There is a single mutex protecting the entire map.
You can iterate using getIterator()/getNextElement(). However, that is not guaranteed iteration. Your iterator will be invalidated (and getNextElement() will return false) if another thread has since updated the map.
Definition at line 56 of file threadsafe_multimap.h.
| int threadsafe_multimap< K, T >::size | ( | void | ) | [inline] |
how many elements in the map
Definition at line 77 of file threadsafe_multimap.h.
| int threadsafe_multimap< K, T >::count | ( | IN const K & | key | ) | [inline] |
how many elements with the given key
Definition at line 84 of file threadsafe_multimap.h.
| void threadsafe_multimap< K, T >::insert | ( | IN const K & | key, | |
| IN const T & | t | |||
| ) | [inline] |
insert the given object at the given key value
Reimplemented in Datahash.
Definition at line 90 of file threadsafe_multimap.h.
| void threadsafe_multimap< K, T >::remove | ( | IN const K & | key | ) | [inline] |
remove (erase) all elements with this key
Definition at line 97 of file threadsafe_multimap.h.
| void threadsafe_multimap< K, T >::clear | ( | void | ) | [inline] |
clear out (erase) the entire map
Definition at line 105 of file threadsafe_multimap.h.
| void threadsafe_multimap< K, T >::getIterator | ( | OUT iterator_t & | i | ) | [inline] |
get an iterator (points to the first element in the map)
Definition at line 112 of file threadsafe_multimap.h.
| void threadsafe_multimap< K, T >::getIterator | ( | IN const K & | key, | |
| OUT iterator_t & | i | |||
| ) | [inline] |
get an iterator just for a particular key
Definition at line 120 of file threadsafe_multimap.h.
| bool threadsafe_multimap< K, T >::getNextElement | ( | IO iterator_t & | i, | |
| OUT K & | k, | |||
| OUT T & | t | |||
| ) | [inline] |
get next element in map and increment iterator
Definition at line 129 of file threadsafe_multimap.h.
| T* threadsafe_multimap< K, T >::getNextElementUnsafe | ( | IO iterator_t & | i, | |
| OUT K & | k | |||
| ) | [inline] |
get next element without getting a local copy.
Caller had better be sure that the element won't be removed after this call!
Definition at line 141 of file threadsafe_multimap.h.
1.7.1