10#include <boost/unordered_map.hpp>
16template <
class KEY,
class VALUE,
class HASH = boost::hash<KEY>,
class EQUAL = std::equal_to<KEY> >
21 typedef boost::unordered_map<KEY, VALUE, HASH, EQUAL>
map_type;
72 operator bool()
const {
85 void put(
const KEY& key,
const VALUE& value) {
86 (*mapContainer)[key] = value;
91 for (
iterator current = first; current != last; ++current) {
92 (*mapContainer)[current->first] = current->second;
101 template <
class ITER>
114 VALUE
get(
const KEY& key)
const {
116 return findValue ==
mapContainer->end() ? VALUE() : findValue->second;
129template <
class KEY,
class VALUE,
class HASH = boost::hash<KEY>,
class EQUAL = std::equal_to<KEY> >
134 typedef typename boost::unordered_map<KEY, VALUE, HASH, EQUAL>
map_type;
139 instance.
mapContainer = Lucene::newInstance<map_type>();
149 if (!key->first.expired()) {
150 clearCopy.insert(*key);
156 VALUE
get(
const KEY& key) {
159 return findValue->second;
Utility template class to handle hash maps that can be safely copied and shared.
Definition HashMap.h:17
const_iterator end() const
Definition HashMap.h:68
void reset()
Definition HashMap.h:40
iterator end()
Definition HashMap.h:60
map_type::const_iterator const_iterator
Definition HashMap.h:23
void clear()
Definition HashMap.h:52
bool remove(const KEY &key)
Definition HashMap.h:106
boost::unordered_map< KEY, VALUE, HASH, EQUAL > map_type
Definition HashMap.h:21
ITER remove(ITER first, ITER last)
Definition HashMap.h:102
virtual ~HashMap()
Definition HashMap.h:27
void remove(ITER pos)
Definition HashMap.h:97
KEY key_type
Definition HashMap.h:24
map_type::iterator iterator
Definition HashMap.h:22
int32_t size() const
Definition HashMap.h:44
iterator begin()
Definition HashMap.h:56
VALUE & operator[](const KEY &key)
Definition HashMap.h:123
void putAll(ITER first, ITER last)
Definition HashMap.h:90
bool operator!() const
Definition HashMap.h:76
static this_type newInstance()
Definition HashMap.h:34
VALUE value_type
Definition HashMap.h:25
const_iterator begin() const
Definition HashMap.h:64
iterator find(const KEY &key)
Definition HashMap.h:110
boost::shared_ptr< map_type > mapContainer
Definition HashMap.h:31
HashMap< KEY, VALUE, HASH, EQUAL > this_type
Definition HashMap.h:19
void put(const KEY &key, const VALUE &value)
Definition HashMap.h:85
std::pair< KEY, VALUE > key_value
Definition HashMap.h:20
VALUE get(const KEY &key) const
Definition HashMap.h:114
bool contains(const KEY &key) const
Definition HashMap.h:119
bool empty() const
Definition HashMap.h:48
map_type & operator=(const map_type &other)
Definition HashMap.h:80
Base class for all Lucene synchronised classes.
Definition LuceneSync.h:15
Utility template class to handle weak keyed maps.
Definition HashMap.h:130
std::pair< KEY, VALUE > key_value
Definition HashMap.h:133
map_type::iterator iterator
Definition HashMap.h:135
static this_type newInstance()
Definition HashMap.h:137
void removeWeak()
Definition HashMap.h:143
boost::unordered_map< KEY, VALUE, HASH, EQUAL > map_type
Definition HashMap.h:134
WeakHashMap< KEY, VALUE, HASH, EQUAL > this_type
Definition HashMap.h:132
VALUE get(const KEY &key)
Definition HashMap.h:156
Definition AbstractAllTermDocs.h:12