GNUnet 0.21.1
gnunet_namecache_plugin.h
Go to the documentation of this file.
1/*
2 This file is part of GNUnet
3 Copyright (C) 2012, 2013 GNUnet e.V.
4
5 GNUnet is free software: you can redistribute it and/or modify it
6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Affero General Public License for more details.
14
15 You should have received a copy of the GNU Affero General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17
18 SPDX-License-Identifier: AGPL3.0-or-later
19 */
20
37#ifndef GNUNET_NAMECACHE_PLUGIN_H
38#define GNUNET_NAMECACHE_PLUGIN_H
39
40
41#include "gnunet_util_lib.h"
44
45#ifdef __cplusplus
46extern "C"
47{
48#if 0 /* keep Emacsens' auto-indent happy */
49}
50#endif
51#endif
52
53
60typedef void (*GNUNET_NAMECACHE_BlockCallback) (void *cls,
61 const struct
63
64
69{
73 void *cls;
74
83 int (*cache_block) (void *cls,
84 const struct GNUNET_GNSRECORD_Block *block);
85
86
97 int (*lookup_block) (void *cls,
98 const struct GNUNET_HashCode *query,
99 GNUNET_NAMECACHE_BlockCallback iter, void *iter_cls);
100};
101
102
103#if 0 /* keep Emacsens' auto-indent happy */
104{
105#endif
106#ifdef __cplusplus
107}
108#endif
109
110#endif
111 /* end of group */
113 /* end of group addition */
API that can be used to store naming information on a GNUnet node.
API that can be used to store naming information on a GNUnet node;.
void(* GNUNET_NAMECACHE_BlockCallback)(void *cls, const struct GNUNET_GNSRECORD_Block *block)
Function called for matching blocks.
A 512-bit hashcode.
struct returned by the initialization function of the plugin
int(* lookup_block)(void *cls, const struct GNUNET_HashCode *query, GNUNET_NAMECACHE_BlockCallback iter, void *iter_cls)
Get the block for a particular zone and label in the datastore.
int(* cache_block)(void *cls, const struct GNUNET_GNSRECORD_Block *block)
Cache a block in the datastore.
void * cls
Closure to pass to all plugin functions.