cctools
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
dttools
src
hash_cache.h
1
/*
2
Copyright (C) 2003-2004 Douglas Thain and the University of Wisconsin
3
Copyright (C) 2005- The University of Notre Dame
4
This software is distributed under the GNU General Public License.
5
See the file COPYING for details.
6
*/
7
8
#ifndef HASH_CACHE_H
9
#define HASH_CACHE_H
10
11
#include "
hash_table.h
"
12
13
/*
14
A hash_cache is like a hash_table, with one key difference:
15
Each item is inserted with a lifetime given in seconds.
16
Once the lifetime has expired, the item is automatically
17
deleted (using the given cleanup function) and the user
18
will not see it again.
19
*/
20
21
22
typedef
void (*hash_cache_cleanup_t) (
void
*value);
23
24
struct
hash_cache *hash_cache_create(
int
size,
hash_func_t
func, hash_cache_cleanup_t cleanup);
25
void
hash_cache_delete(
struct
hash_cache *cache);
26
27
int
hash_cache_insert(
struct
hash_cache *cache,
const
char
*key,
void
*value,
int
lifetime);
28
void
*hash_cache_remove(
struct
hash_cache *cache,
const
char
*key);
29
void
*hash_cache_lookup(
struct
hash_cache *cache,
const
char
*key);
30
31
void
hash_cache_firstkey(
struct
hash_cache *cache);
32
int
hash_cache_nextkey(
struct
hash_cache *cache,
char
**key,
void
**item);
33
34
#endif
Generated on Sun Mar 16 2014 07:12:21 for cctools by
1.8.1.2