blob: 0a1a9b126566be77d3e775614d419890afcd8ce4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
/*
This file is part of GNUnet.
Copyright (C) 2020 GNUnet e.V.
GNUnet is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.
GNUnet is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
SPDX-License-Identifier: AGPL3.0-or-later
*/
/**
* @author Tobias Frisch
* @file src/messenger/gnunet-service-messenger_basement.h
* @brief GNUnet MESSENGER service
*/
#ifndef GNUNET_SERVICE_MESSENGER_BASEMENT_H
#define GNUNET_SERVICE_MESSENGER_BASEMENT_H
#include "messenger_api_list_tunnels.h"
/**
* Returns the count of peers in a list (typically from the basement of a room).
*
* @param tunnels List of peer identities
* @return Count of the entries in the list
*/
size_t
count_of_tunnels (const struct GNUNET_MESSENGER_ListTunnels *tunnels);
/**
* Returns GNUNET_YES or GNUNET_NO to determine if the peer at index <i>src</i> should
* or should not connect outgoing to the peer at index <i>dst</i> to construct a complete
* basement with a given <i>count</i> of peers.
*
* @param count Count of peers
* @param src Source index
* @param dst Destination index
* @return GNUNET_YES or GNUNET_NO based on topologic requirement
*/
int
should_connect_tunnel_to (size_t count, size_t src, size_t dst);
/**
* Returns GNUNET_YES or GNUNET_NO to determine if the peers of index <i>src</i> and
* index <i>dst</i> should be connected in any direction to construct a complete
* basement with a given <i>count</i> of peers.
*
* @param count Count of peers
* @param src Source index
* @param dst Destination index
* @return GNUNET_YES or GNUNET_NO based on topologic requirement
*/
int
required_connection_between (size_t count, size_t src, size_t dst);
#endif //GNUNET_SERVICE_MESSENGER_BASEMENT_H
|