aboutsummaryrefslogtreecommitdiff
path: root/src/cadet/gnunet-service-cadet-new_dht.h
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2017-01-15 21:49:27 +0100
committerChristian Grothoff <christian@grothoff.org>2017-01-15 21:49:27 +0100
commit9a8457f1bbce39b73ab7c03bc9706b10f80fbf0c (patch)
treefc6dafd098c8769ed81e710cd2841fba1767e4bb /src/cadet/gnunet-service-cadet-new_dht.h
parent71785fccb8584bd028ff48aa56f55e84324c569e (diff)
downloadgnunet-9a8457f1bbce39b73ab7c03bc9706b10f80fbf0c.tar.gz
gnunet-9a8457f1bbce39b73ab7c03bc9706b10f80fbf0c.zip
starting re-implementation of CADET service
Diffstat (limited to 'src/cadet/gnunet-service-cadet-new_dht.h')
-rw-r--r--src/cadet/gnunet-service-cadet-new_dht.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/src/cadet/gnunet-service-cadet-new_dht.h b/src/cadet/gnunet-service-cadet-new_dht.h
new file mode 100644
index 000000000..70f834de5
--- /dev/null
+++ b/src/cadet/gnunet-service-cadet-new_dht.h
@@ -0,0 +1,108 @@
1/*
2 This file is part of GNUnet.
3 Copyright (C) 2013, 2017 GNUnet e.V.
4
5 GNUnet is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 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 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with GNUnet; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/
20
21/**
22 * @file cadet/gnunet-service-cadet_dht.h
23 * @brief cadet service; dealing with DHT requests and results
24 * @author Bartlomiej Polot
25 * @author Christian Grothoff
26 *
27 * All functions in this file should use the prefix GCD (Gnunet Cadet Dht)
28 */
29#ifndef GNUNET_SERVICE_CADET_DHT_H
30#define GNUNET_SERVICE_CADET_DHT_H
31
32#ifdef __cplusplus
33extern "C"
34{
35#if 0 /* keep Emacsens' auto-indent happy */
36}
37#endif
38#endif
39
40#include "platform.h"
41#include "gnunet_util_lib.h"
42
43/**
44 * Handle for DHT search operation.
45 */
46struct GCD_search_handle;
47
48
49/**
50 * Callback called on each path found over the DHT.
51 *
52 * @param cls Closure.
53 * @param path An unchecked, unoptimized path to the target node.
54 * After callback will no longer be valid!
55 */
56typedef void
57(*GCD_search_callback) (void *cls,
58 const struct CadetPeerPath *path);
59
60
61/**
62 * Initialize the DHT subsystem.
63 *
64 * @param c Configuration.
65 */
66void
67GCD_init (const struct GNUNET_CONFIGURATION_Handle *c);
68
69/**
70 * Shut down the DHT subsystem.
71 */
72void
73GCD_shutdown (void);
74
75
76/**
77 * Search DHT for paths to @a peeR_id
78 *
79 * @param peer_id peer to search for
80 * @param callback function to call with results
81 * @param callback_cls closure for @a callback
82 * @return handle to abort search
83 */
84struct GCD_search_handle *
85GCD_search (const struct GNUNET_PeerIdentity *peer_id,
86 GCD_search_callback callback,
87 void *callback_cls);
88
89
90/**
91 * Stop DHT search started with #GCD_search().
92 *
93 * @param h handle to search to stop
94 */
95void
96GCD_search_stop (struct GCD_search_handle *h);
97
98
99#if 0 /* keep Emacsens' auto-indent happy */
100{
101#endif
102#ifdef __cplusplus
103}
104#endif
105
106/* ifndef GNUNET_CADET_SERVICE_DHT_H */
107#endif
108/* end of gnunet-service-cadet_dht.h */