d3f576c394b7c230b43f9f3b7c28839bca96a01e
[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 hashkit_default(const char *key, size_t key_length);
23 HASHKIT_API
24 uint32_t hashkit_fnv1_64(const char *key, size_t key_length);
25 HASHKIT_API
26 uint32_t hashkit_fnv1a_64(const char *key, size_t key_length);
27 HASHKIT_API
28 uint32_t hashkit_fnv1_32(const char *key, size_t key_length);
29 HASHKIT_API
30 uint32_t hashkit_fnv1a_32(const char *key, size_t key_length);
31 HASHKIT_API
32 uint32_t hashkit_crc32(const char *key, size_t key_length);
33 #ifdef HAVE_HSIEH_HASH
34 HASHKIT_API
35 uint32_t hashkit_hsieh(const char *key, size_t key_length);
36 #endif
37 HASHKIT_API
38 uint32_t hashkit_murmur(const char *key, size_t key_length);
39 HASHKIT_API
40 uint32_t hashkit_jenkins(const char *key, size_t key_length);
41 HASHKIT_API
42 uint32_t hashkit_md5(const char *key, size_t key_length);
43
44 #ifdef __cplusplus
45 }
46 #endif
47
48 #endif /* HASHKIT_ALGORITHM_H */