X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Finclude%2Fgnunet_datacache_plugin.h;h=166c7bc3b63cf7bcca1a3fec914bc1d890f9151b;hb=17047b7bcbe3f1756028058a9887416c6afab5d8;hp=0810a41d9ade596d61f5db421d2d87a3428473f4;hpb=d9dcf9e5754ba3dadb7a6e75b2056863f21b84b4;p=oweals%2Fgnunet.git diff --git a/src/include/gnunet_datacache_plugin.h b/src/include/gnunet_datacache_plugin.h index 0810a41d9..166c7bc3b 100644 --- a/src/include/gnunet_datacache_plugin.h +++ b/src/include/gnunet_datacache_plugin.h @@ -1,6 +1,6 @@ /* This file is part of GNUnet - Copyright (C) 2006, 2009, 2015 Christian Grothoff (and other contributing authors) + Copyright (C) 2006, 2009, 2015 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -14,14 +14,19 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** - * @file include/gnunet_datacache_plugin.h - * @brief API for database backends for the datacache * @author Christian Grothoff + * + * @file + * API for database backends for the datacache + * + * @defgroup datacache-plugin Data Cache plugin API + * API for database backends for the datacache + * @{ */ #ifndef PLUGIN_DATACACHE_H #define PLUGIN_DATACACHE_H @@ -133,7 +138,7 @@ struct GNUNET_DATACACHE_PluginFunctions * @return the number of results found */ unsigned int (*get) (void *cls, - const struct GNUNET_HashCode * key, + const struct GNUNET_HashCode *key, enum GNUNET_BLOCK_Type type, GNUNET_DATACACHE_Iterator iter, void *iter_cls); @@ -160,6 +165,25 @@ struct GNUNET_DATACACHE_PluginFunctions void *iter_cls); + /** + * Iterate over the results that are "close" to a particular key in + * the datacache. "close" is defined as numerically larger than @a + * key (when interpreted as a circular address space), with small + * distance. + * + * @param cls closure (internal context for the plugin) + * @param key area of the keyspace to look into + * @param num_results number of results that should be returned to @a iter + * @param iter maybe NULL (to just count) + * @param iter_cls closure for @a iter + * @return the number of results found + */ + unsigned int (*get_closest) (void *cls, + const struct GNUNET_HashCode *key, + unsigned int num_results, + GNUNET_DATACACHE_Iterator iter, + void *iter_cls); + }; @@ -170,5 +194,6 @@ struct GNUNET_DATACACHE_PluginFunctions } #endif -/* end of gnunet_datacache_plugin.h */ #endif + +/** @} */ /* end of group */