diff options
Diffstat (limited to 'src/datacache/datacache.c')
-rw-r--r-- | src/datacache/datacache.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/datacache/datacache.c b/src/datacache/datacache.c index 426841bc8..6c8d2b8cc 100644 --- a/src/datacache/datacache.c +++ b/src/datacache/datacache.c | |||
@@ -375,4 +375,39 @@ GNUNET_DATACACHE_get_random (struct GNUNET_DATACACHE_Handle *h, | |||
375 | } | 375 | } |
376 | 376 | ||
377 | 377 | ||
378 | /** | ||
379 | * Iterate over the results that are "close" to a particular key in | ||
380 | * the datacache. "close" is defined as numerically larger than @a | ||
381 | * key (when interpreted as a circular address space), with small | ||
382 | * distance. | ||
383 | * | ||
384 | * @param h handle to the datacache | ||
385 | * @param key area of the keyspace to look into | ||
386 | * @param num_results number of results that should be returned to @a iter | ||
387 | * @param iter maybe NULL (to just count) | ||
388 | * @param iter_cls closure for @a iter | ||
389 | * @return the number of results found | ||
390 | */ | ||
391 | unsigned int | ||
392 | GNUNET_DATACACHE_get_closest (struct GNUNET_DATACACHE_Handle *h, | ||
393 | const struct GNUNET_HashCode *key, | ||
394 | unsigned int num_results, | ||
395 | GNUNET_DATACACHE_Iterator iter, | ||
396 | void *iter_cls) | ||
397 | { | ||
398 | GNUNET_STATISTICS_update (h->stats, | ||
399 | gettext_noop ("# proximity search requests received"), | ||
400 | 1, | ||
401 | GNUNET_NO); | ||
402 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
403 | "Processing proximity search at `%s'\n", | ||
404 | GNUNET_h2s (key)); | ||
405 | return h->api->get_closest (h->api->cls, | ||
406 | key, | ||
407 | num_results, | ||
408 | iter, | ||
409 | iter_cls); | ||
410 | } | ||
411 | |||
412 | |||
378 | /* end of datacache.c */ | 413 | /* end of datacache.c */ |