10 #include <boost/unordered_map.hpp> 16 template <
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;
45 return (int32_t)mapContainer->size();
49 return mapContainer->empty();
53 mapContainer->clear();
57 return mapContainer->begin();
61 return mapContainer->end();
65 return mapContainer->begin();
68 const_iterator
end()
const {
69 return mapContainer->end();
72 operator bool()
const {
73 return mapContainer.get() != NULL;
81 mapContainer = other.mapContainer;
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;
97 void remove(ITER pos) {
98 mapContainer->erase(pos);
101 template <
class ITER>
102 ITER
remove(ITER first, ITER last) {
103 return mapContainer->erase(first, last);
106 bool remove(
const KEY& key) {
107 return (mapContainer->erase(key) > 0);
110 iterator
find(
const KEY& key) {
111 return mapContainer->find(key);
114 VALUE
get(
const KEY& key)
const {
115 iterator findValue = mapContainer->find(key);
116 return findValue == mapContainer->end() ? VALUE() : findValue->second;
120 return (mapContainer->find(key) != mapContainer->end());
124 return (*mapContainer)[key];
129 template <
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;
iterator find(const KEY &key)
Definition: HashMap.h:110
const_iterator begin() const
Definition: HashMap.h:64
WeakHashMap< KEY, VALUE, HASH, EQUAL > this_type
Definition: HashMap.h:132
HashMap< KEY, VALUE, HASH, EQUAL > this_type
Definition: HashMap.h:19
Utility template class to handle hash maps that can be safely copied and shared.
Definition: HashMap.h:17
void put(const KEY &key, const VALUE &value)
Definition: HashMap.h:85
boost::shared_ptr< map_type > mapContainer
Definition: HashMap.h:31
static this_type newInstance()
Definition: HashMap.h:137
std::pair< KEY, VALUE > key_value
Definition: HashMap.h:133
Utility template class to handle weak keyed maps.
Definition: HashMap.h:130
map_type::iterator iterator
Definition: HashMap.h:135
void clear()
Definition: HashMap.h:52
Base class for all Lucene synchronised classes.
Definition: LuceneSync.h:15
void putAll(ITER first, ITER last)
Definition: HashMap.h:90
void reset()
Definition: HashMap.h:40
map_type & operator=(const map_type &other)
Definition: HashMap.h:80
iterator end()
Definition: HashMap.h:60
static this_type newInstance()
Definition: HashMap.h:34
VALUE value_type
Definition: HashMap.h:25
bool contains(const KEY &key) const
Definition: HashMap.h:119
const_iterator end() const
Definition: HashMap.h:68
Definition: AbstractAllTermDocs.h:12
int32_t size() const
Definition: HashMap.h:44
boost::unordered_map< KEY, VALUE, HASH, EQUAL > map_type
Definition: HashMap.h:21
KEY key_type
Definition: HashMap.h:24
std::pair< KEY, VALUE > key_value
Definition: HashMap.h:20
iterator begin()
Definition: HashMap.h:56
void removeWeak()
Definition: HashMap.h:143
map_type::iterator iterator
Definition: HashMap.h:22
map_type::const_iterator const_iterator
Definition: HashMap.h:23
virtual ~HashMap()
Definition: HashMap.h:27
bool operator!() const
Definition: HashMap.h:76
bool empty() const
Definition: HashMap.h:48
VALUE & operator[](const KEY &key)
Definition: HashMap.h:123
boost::unordered_map< KEY, VALUE, HASH, EQUAL > map_type
Definition: HashMap.h:134