- initial import of revision 374 from cnc
[apt.git] / apt-pkg / rpm / rpmmisc.h
1 #ifndef RPMMISC_H
2 #define RPMMISC_H
3
4 #ifdef WITH_GNU_HASH_MAP
5
6 #include <ext/hash_map>
7
8 using namespace __gnu_cxx;
9
10 struct hash_string
11 {
12    size_t operator()(string str) const {
13       unsigned long h = 0; 
14       const char *s = str.c_str();
15       for (; *s; ++s)
16          h = 5*h + *s;
17       return size_t(h);
18    };
19 };
20
21 struct cstr_eq_pred
22 {
23    size_t operator()(const char *s1, const char *s2) const
24       { return strcmp(s1, s2) == 0; };
25 };
26 #endif /* WITH_GNU_HASH_MAP */
27
28 struct cstr_lt_pred
29 {
30    size_t operator()(const char *s1, const char *s2) const
31       { return strcmp(s1, s2) < 0; };
32 };
33
34 #endif
35
36 // vim:sts=3:sw=3