Lucene++ - a full-featured, c++ search engine
API Documentation


Loading...
Searching...
No Matches
MapOfSets.h
Go to the documentation of this file.
1
2// Copyright (c) 2009-2014 Alan Wright. All rights reserved.
3// Distributable under the terms of either the Apache License (Version 2.0)
4// or the GNU Lesser General Public License.
6
7#ifndef MAPOFSETS_H
8#define MAPOFSETS_H
9
10#include "Lucene.h"
11
12namespace Lucene {
13
15template <class MAPKEY, class MAPHASH, class MAPEQUAL, class SETVALUE, class SETHASH, class SETEQUAL>
16class MapOfSets {
17public:
20
22 theMap = m;
23 }
24
25protected:
27
28public:
31 return theMap;
32 }
33
37 int32_t put(MAPKEY key, SETVALUE val) {
38 typename map_type::iterator entry = theMap.find(key);
39 if (entry != theMap.end()) {
40 entry->second.add(val);
41 return entry->second.size();
42 } else {
44 theSet.add(val);
45 theMap.put(key, theSet);
46 return 1;
47 }
48 }
49
53 int32_t putAll(MAPKEY key, set_type vals) {
54 typename map_type::iterator entry = theMap.find(key);
55 if (entry != theMap.end()) {
56 entry->second.addAll(vals.begin(), vals.end());
57 return entry->second.size();
58 } else {
59 set_type theSet(set_type::newInstance(vals.begin(), vals.end()));
60 theMap.put(key, theSet);
61 return theSet.size();
62 }
63 }
64};
65
66}
67
68#endif
Utility template class to handle hash maps that can be safely copied and shared.
Definition HashMap.h:17
iterator end()
Definition HashMap.h:60
map_type::iterator iterator
Definition HashMap.h:22
iterator find(const KEY &key)
Definition HashMap.h:110
void put(const KEY &key, const VALUE &value)
Definition HashMap.h:85
Utility template class to handle hash set collections that can be safely copied and shared.
Definition HashSet.h:17
bool add(const TYPE &type)
Definition HashSet.h:90
iterator begin()
Definition HashSet.h:61
static this_type newInstance()
Definition HashSet.h:32
int32_t size() const
Definition HashSet.h:49
iterator end()
Definition HashSet.h:65
Helper class for keeping Lists of Objects associated with keys.
Definition MapOfSets.h:16
map_type getMap()
Definition MapOfSets.h:30
MapOfSets(map_type m)
Definition MapOfSets.h:21
int32_t put(MAPKEY key, SETVALUE val)
Adds val to the HashSet associated with key in the HashMap. If key is not already in the map,...
Definition MapOfSets.h:37
int32_t putAll(MAPKEY key, set_type vals)
Adds multiple vals to the HashSet associated with key in the HashMap. If key is not already in the ma...
Definition MapOfSets.h:53
map_type theMap
Definition MapOfSets.h:26
HashMap< MAPKEY, set_type, MAPHASH, MAPEQUAL > map_type
Definition MapOfSets.h:19
HashSet< SETVALUE, SETHASH, SETEQUAL > set_type
Definition MapOfSets.h:18
Definition AbstractAllTermDocs.h:12

clucene.sourceforge.net