Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
cachedb.h
Go to the documentation of this file.
1
/*
2
* cachedb/cachedb.h - cache from a database external to the program module
3
*
4
* Copyright (c) 2016, NLnet Labs. All rights reserved.
5
*
6
* This software is open source.
7
*
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
10
* are met:
11
*
12
* Redistributions of source code must retain the above copyright notice,
13
* this list of conditions and the following disclaimer.
14
*
15
* Redistributions in binary form must reproduce the above copyright notice,
16
* this list of conditions and the following disclaimer in the documentation
17
* and/or other materials provided with the distribution.
18
*
19
* Neither the name of the NLNET LABS nor the names of its contributors may
20
* be used to endorse or promote products derived from this software without
21
* specific prior written permission.
22
*
23
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
29
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
*/
35
42
#include "
util/module.h
"
43
struct
cachedb_backend
;
44
50
struct
cachedb_env
{
52
int
enabled
;
53
55
struct
cachedb_backend
*
backend
;
56
58
void
*
backend_data
;
59
};
60
64
struct
cachedb_qstate
{
65
int
todo
;
66
};
67
71
struct
cachedb_backend
{
73
const
char
*
name
;
74
76
int (*
init
)(
struct
module_env
*,
struct
cachedb_env
*);
77
79
void (*
deinit
)(
struct
module_env
*,
struct
cachedb_env
*);
80
82
int (*
lookup
)(
struct
module_env
*,
struct
cachedb_env
*,
char
*,
83
struct
sldns_buffer
*);
84
86
void (*
store
)(
struct
module_env
*,
struct
cachedb_env
*,
char
*,
87
uint8_t
*, size_t);
88
};
89
90
#define CACHEDB_HASHSIZE 256
/* bit hash */
91
93
int
cachedb_init
(
struct
module_env
* env,
int
id
);
95
void
cachedb_deinit
(
struct
module_env
* env,
int
id
);
97
void
cachedb_operate
(
struct
module_qstate
* qstate,
enum
module_ev
event,
98
int
id
,
struct
outbound_entry
* outbound);
100
void
cachedb_inform_super
(
struct
module_qstate
* qstate,
int
id
,
101
struct
module_qstate
* super);
103
void
cachedb_clear
(
struct
module_qstate
* qstate,
int
id
);
105
size_t
cachedb_get_mem
(
struct
module_env
* env,
int
id
);
106
111
struct
module_func_block
*
cachedb_get_funcblock
(
void
);
112
cachedb_operate
void cachedb_operate(struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound)
cachedb_get_mem
size_t cachedb_get_mem(struct module_env *env, int id)
cachedb_init
int cachedb_init(struct module_env *env, int id)
cachedb_clear
void cachedb_clear(struct module_qstate *qstate, int id)
cachedb_get_funcblock
struct module_func_block * cachedb_get_funcblock(void)
cachedb_deinit
void cachedb_deinit(struct module_env *env, int id)
cachedb_inform_super
void cachedb_inform_super(struct module_qstate *qstate, int id, struct module_qstate *super)
module.h
module_ev
module_ev
Definition
module.h:536
uint8_t
unsigned char uint8_t
Definition
stdint.h:124
cachedb_backend
Definition
cachedb.h:71
cachedb_backend::store
void(* store)(struct module_env *, struct cachedb_env *, char *, uint8_t *, size_t)
Definition
cachedb.h:86
cachedb_backend::name
const char * name
Definition
cachedb.h:73
cachedb_backend::init
int(* init)(struct module_env *, struct cachedb_env *)
Definition
cachedb.h:76
cachedb_backend::deinit
void(* deinit)(struct module_env *, struct cachedb_env *)
Definition
cachedb.h:79
cachedb_backend::lookup
int(* lookup)(struct module_env *, struct cachedb_env *, char *, struct sldns_buffer *)
Definition
cachedb.h:82
cachedb_env
Definition
cachedb.h:50
cachedb_env::backend
struct cachedb_backend * backend
Definition
cachedb.h:55
cachedb_env::backend_data
void * backend_data
Definition
cachedb.h:58
cachedb_env::enabled
int enabled
Definition
cachedb.h:52
cachedb_qstate
Definition
cachedb.h:64
cachedb_qstate::todo
int todo
Definition
cachedb.h:65
module_env
Definition
module.h:307
module_func_block
Definition
module.h:642
module_qstate
Definition
module.h:571
outbound_entry
Definition
outbound_list.h:61
sldns_buffer
Definition
sbuffer.h:117
external
unbound
cachedb
cachedb.h
Generated on
for Electroneum by
1.17.0