Merge in bug fix for 677609
[awesomized/libmemcached] / libhashkit / algorithm.h
1 /* HashKit
2 * Copyright (C) 2009 Brian Aker
3 * All rights reserved.
4 *
5 * Use and distribution licensed under the BSD license. See
6 * the COPYING file in the parent directory for full text.
7 */
8
9 /**
10 * @file
11 * @brief HashKit Header
12 */
13
14 #ifndef HASHKIT_ALGORITHM_H
15 #define HASHKIT_ALGORITHM_H
16
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20
21 HASHKIT_API
22 uint32_t libhashkit_one_at_a_time(const char *key, size_t key_length);
23
24 HASHKIT_API
25 uint32_t libhashkit_fnv1_64(const char *key, size_t key_length);
26
27 HASHKIT_API
28 uint32_t libhashkit_fnv1a_64(const char *key, size_t key_length);
29
30 HASHKIT_API
31 uint32_t libhashkit_fnv1_32(const char *key, size_t key_length);
32
33 HASHKIT_API
34 uint32_t libhashkit_fnv1a_32(const char *key, size_t key_length);
35
36 HASHKIT_API
37 uint32_t libhashkit_crc32(const char *key, size_t key_length);
38
39 #ifdef HAVE_HSIEH_HASH
40 HASHKIT_API
41 uint32_t libhashkit_hsieh(const char *key, size_t key_length);
42 #endif
43
44 #ifdef HAVE_MURMUR_HASH
45 HASHKIT_API
46 uint32_t libhashkit_murmur(const char *key, size_t key_length);
47 #endif
48
49 HASHKIT_API
50 uint32_t libhashkit_jenkins(const char *key, size_t key_length);
51
52 HASHKIT_API
53 uint32_t libhashkit_md5(const char *key, size_t key_length);
54
55 HASHKIT_LOCAL
56 uint32_t hashkit_one_at_a_time(const char *key, size_t key_length, void *context);
57
58 HASHKIT_LOCAL
59 uint32_t hashkit_fnv1_64(const char *key, size_t key_length, void *context);
60
61 HASHKIT_LOCAL
62 uint32_t hashkit_fnv1a_64(const char *key, size_t key_length, void *context);
63
64 HASHKIT_LOCAL
65 uint32_t hashkit_fnv1_32(const char *key, size_t key_length, void *context);
66
67 HASHKIT_LOCAL
68 uint32_t hashkit_fnv1a_32(const char *key, size_t key_length, void *context);
69
70 HASHKIT_LOCAL
71 uint32_t hashkit_crc32(const char *key, size_t key_length, void *context);
72
73 #ifdef HAVE_HSIEH_HASH
74 HASHKIT_LOCAL
75 uint32_t hashkit_hsieh(const char *key, size_t key_length, void *context);
76 #endif
77
78 #ifdef HAVE_MURMUR_HASH
79 HASHKIT_LOCAL
80 uint32_t hashkit_murmur(const char *key, size_t key_length, void *context);
81 #endif
82
83 HASHKIT_LOCAL
84 uint32_t hashkit_jenkins(const char *key, size_t key_length, void *context);
85
86 HASHKIT_LOCAL
87 uint32_t hashkit_md5(const char *key, size_t key_length, void *context);
88
89 HASHKIT_API
90 void libhashkit_md5_signature(const unsigned char *key, size_t length, unsigned char *result);
91
92 #ifdef __cplusplus
93 }
94 #endif
95
96 #endif /* HASHKIT_ALGORITHM_H */