Merge branch 'master' of gnunet.org:gnunet
[oweals/gnunet.git] / src / set / gnunet-service-set_intersection.h
1
2 /*
3       This file is part of GNUnet
4       Copyright (C) 2013-2017 GNUnet e.V.
5
6       GNUnet is free software: you can redistribute it and/or modify it
7       under the terms of the GNU Affero General Public License as published
8       by the Free Software Foundation, either version 3 of the License,
9       or (at your option) any later version.
10
11       GNUnet is distributed in the hope that it will be useful, but
12       WITHOUT ANY WARRANTY; without even the implied warranty of
13       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14       Affero General Public License for more details.
15      
16       You should have received a copy of the GNU Affero General Public License
17       along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19 /**
20  * @file set/gnunet-service-set_intersection.h
21  * @brief two-peer set operations
22  * @author Florian Dold
23  * @author Christian Grothoff
24  */
25 #ifndef GNUNET_SERVICE_SET_INTERSECTION_H
26 #define GNUNET_SERVICE_SET_INTERSECTION_H
27
28 #include "gnunet-service-set.h"
29
30
31 /**
32  * Check an BF message from a remote peer.
33  *
34  * @param cls the intersection operation
35  * @param msg the header of the message
36  * @return #GNUNET_OK if @a msg is well-formed
37  */
38 int
39 check_intersection_p2p_bf (void *cls,
40                            const struct BFMessage *msg);
41
42
43 /**
44  * Handle an BF message from a remote peer.
45  *
46  * @param cls the intersection operation
47  * @param msg the header of the message
48  */
49 void
50 handle_intersection_p2p_bf (void *cls,
51                             const struct BFMessage *msg);
52
53
54 /**
55  * Handle the initial `struct IntersectionElementInfoMessage` from a
56  * remote peer.
57  *
58  * @param cls the intersection operation
59  * @param mh the header of the message
60  */
61 void
62 handle_intersection_p2p_element_info (void *cls,
63                                       const struct IntersectionElementInfoMessage *msg);
64
65
66 /**
67  * Handle a done message from a remote peer
68  *
69  * @param cls the intersection operation
70  * @param mh the message
71  */
72 void
73 handle_intersection_p2p_done (void *cls,
74                               const struct IntersectionDoneMessage *idm);
75
76
77 #endif