regfi
Main Page
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Groups
Pages
include
lru_cache.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2008-2010 Timothy D. Morgan
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation; version 3 of the License.
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
16
*
17
* $Id: lru_cache.h 253 2011-06-13 02:27:42Z tim $
18
*/
19
28
#ifndef LRU_CACHE_H
29
#define LRU_CACHE_H
30
31
#include <stdbool.h>
32
#include <stdint.h>
33
#include <stdlib.h>
34
#include <stdio.h>
35
#include <string.h>
36
#include <unistd.h>
37
#include <talloc.h>
38
39
#include "compat.h"
40
41
42
struct
lru_cache_element
;
43
typedef
struct
lru_cache_element
lru_cache_element
;
44
45
struct
lru_cache_element
46
{
47
void
* index;
48
uint32_t index_len;
49
void
* data;
50
lru_cache_element
* next;
51
lru_cache_element
* older;
52
lru_cache_element
* newer;
53
};
54
55
57
typedef
struct
_lru_cache
58
{
59
uint32_t secret;
60
uint32_t num_keys;
61
uint32_t num_buckets;
62
uint32_t max_keys;
63
lru_cache_element
* oldest;
64
lru_cache_element
* newest;
65
lru_cache_element
** table;
66
bool
talloc_data;
67
}
lru_cache
;
68
69
73
_EXPORT()
74
lru_cache
*
lru_cache_create
(uint32_t max_keys, uint32_t secret);
75
76
80
_EXPORT()
81
lru_cache
*
lru_cache_create_ctx
(
void
* talloc_ctx, uint32_t max_keys,
82
uint32_t secret,
bool
talloc_data);
83
84
88
_EXPORT()
89
void
lru_cache_destroy
(
lru_cache
* ht);
90
91
95
_EXPORT()
96
bool
lru_cache_update
(
lru_cache
* ht, const
void
* index,
97
uint32_t index_len,
void
* data);
98
105
_EXPORT()
106
void
*
lru_cache_find
(
lru_cache
* ht, const
void
* index,
107
uint32_t index_len);
108
117
_EXPORT()
118
bool
lru_cache_remove
(
lru_cache
* ht, const
void
* index,
119
uint32_t index_len);
120
121
#endif
Generated by
1.8.1.2