~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/hash.h

New merge for TableShare

Show diffs side-by-side

added added

removed removed

Lines of Context:
107
107
          typename HashFcn = hash<Key>,
108
108
          typename EqualKey = int >
109
109
class hash_map : public std::map<Key, Data, HashFcn> {
 
110
 
 
111
  void rehash(size_t buckets_in)
 
112
  {
 
113
    resize(buckets_in);
 
114
  }
110
115
};
111
116
 
112
117
template <typename Key,
113
118
          typename HashFcn = hash<Key>,
114
119
          typename EqualKey = int >
115
120
class hash_set : public std::set<Key, HashFcn> {
 
121
  void rehash(size_t buckets_in)
 
122
  {
 
123
    resize(buckets_in);
 
124
  }
116
125
};
117
126
 
118
127
#elif defined(_MSC_VER) && !defined(_STLPORT_VERSION)
140
149
          typename EqualKey = int >
141
150
class hash_map : public HASH_NAMESPACE::HASH_MAP_CLASS<
142
151
    Key, Data, HashFcn> {
 
152
#if !defined(HASH_MAP_HAS_REHASH)
 
153
public:
 
154
  void rehash(size_t buckets_in)
 
155
  {
 
156
# if defined(HASH_MAP_HAS_RESIZE)
 
157
    resize(buckets_in);
 
158
# endif /* HASH_MAP_HAS_RESIZE */
 
159
  }
 
160
#endif /* HASH_MAP_HAS_REHASH */
143
161
};
144
162
 
145
163
template <typename Key,
147
165
          typename EqualKey = int >
148
166
class hash_set : public HASH_NAMESPACE::HASH_SET_CLASS<
149
167
    Key, HashFcn> {
 
168
#if !defined(HASH_MAP_HAS_REHASH)
 
169
public:
 
170
  void rehash(size_t buckets_in)
 
171
  {
 
172
# if defined(HASH_MAP_HAS_RESIZE)
 
173
    resize(buckets_in);
 
174
# endif /* HASH_MAP_HAS_RESIZE */
 
175
  }
 
176
#endif /* HASH_MAP_HAS_REHASH */
150
177
};
151
178
 
152
179
#else
171
198
          typename EqualKey = std::equal_to<Key> >
172
199
class hash_map : public HASH_NAMESPACE::HASH_MAP_CLASS<
173
200
    Key, Data, HashFcn, EqualKey> {
 
201
#if !defined(HASH_MAP_HAS_REHASH)
 
202
public:
 
203
  void rehash(size_t buckets_in)
 
204
  {
 
205
# if defined(HASH_MAP_HAS_RESIZE)
 
206
    HASH_NAMESPACE::HASH_MAP_CLASS<Key, Data, HashFcn, EqualKey>::resize(buckets_in);
 
207
# endif /* HASH_MAP_HAS_RESIZE */
 
208
  }
 
209
#endif /* HASH_MAP_HAS_REHASH */
174
210
};
175
211
 
176
212
template <typename Key,
178
214
          typename EqualKey = std::equal_to<Key> >
179
215
class hash_set : public HASH_NAMESPACE::HASH_SET_CLASS<
180
216
    Key, HashFcn, EqualKey> {
 
217
#if !defined(HASH_MAP_HAS_REHASH)
 
218
public:
 
219
  void rehash(size_t buckets_in)
 
220
  {
 
221
# if defined(HASH_MAP_HAS_RESIZE)
 
222
    HASH_NAMESPACE::HASH_SET_CLASS<Key, HashFcn, EqualKey>::resize(buckets_in);
 
223
# endif /* HASH_MAP_HAS_RESIZE */
 
224
  }
 
225
#endif /* HASH_MAP_HAS_REHASH */
181
226
};
182
227
 
183
228
#endif