GNUnet  0.10.x
core.h
Go to the documentation of this file.
1 /*
2  This file is part of GNUnet.
3  Copyright (C) 2009-2014 GNUnet e.V.
4 
5  GNUnet is free software: you can redistribute it and/or modify it
6  under the terms of the GNU Affero General Public License as published
7  by the Free Software Foundation, either version 3 of the License,
8  or (at your 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  Affero General Public License for more details.
14 
15  You should have received a copy of the GNU Affero General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 
18  SPDX-License-Identifier: AGPL3.0-or-later
19 */
20 
26 #ifndef CORE_H
27 #define CORE_H
28 
29 #include "gnunet_bandwidth_lib.h"
31 #include "gnunet_crypto_lib.h"
32 #include "gnunet_time_lib.h"
33 
37 #define DEBUG_CORE GNUNET_EXTRA_LOGGING
38 
45 #define GNUNET_CORE_OPTION_NOTHING 0
46 
50 #define GNUNET_CORE_OPTION_SEND_STATUS_CHANGE 4
51 
55 #define GNUNET_CORE_OPTION_SEND_FULL_INBOUND 8
56 
61 #define GNUNET_CORE_OPTION_SEND_HDR_INBOUND 16
62 
66 #define GNUNET_CORE_OPTION_SEND_FULL_OUTBOUND 32
67 
72 #define GNUNET_CORE_OPTION_SEND_HDR_OUTBOUND 64
73 
74 
76 
84 {
85 
90 
95 };
96 
97 
103 {
104 
109 
114 
119 };
120 
121 
127 {
132 
137 
142 };
143 
144 
150 {
155 
160 
164  struct GNUNET_PeerIdentity peer;
165 };
166 
167 
178 {
184 
188  struct GNUNET_PeerIdentity peer;
189 
190  /* Followed by payload (message or just header), variable size */
191 };
192 
193 
199 {
204 
208  uint32_t priority GNUNET_PACKED;
209 
215 
219  struct GNUNET_PeerIdentity peer;
220 
225 
229  uint16_t size GNUNET_PACKED;
230 
234  uint16_t smr_id GNUNET_PACKED;
235 };
236 
237 
244 {
249 
256  uint16_t size GNUNET_PACKED;
257 
261  uint16_t smr_id GNUNET_PACKED;
262 
266  struct GNUNET_PeerIdentity peer;
267 };
268 
269 
275 {
280 
285  uint32_t priority GNUNET_PACKED;
286 
292 
296  struct GNUNET_PeerIdentity peer;
297 };
298 
299 
305 {
310 
315 
319  struct GNUNET_PeerIdentity peer;
320 
325 };
326 
327 
329 #endif
330 /* end of core.h */
Message sent by the service to clients to notify them about a peer connecting.
Definition: core.h:126
static struct GNUNET_PeerIdentity my_identity
Identity of this peer.
uint32_t options
Options, see GNUNET_CORE_OPTION_ values.
Definition: core.h:94
Message transmitted core clients to gnunet-service-core to start the interaction. ...
Definition: core.h:83
Time for absolute time used by GNUnet, in microseconds and in network byte order. ...
#define GNUNET_NETWORK_STRUCT_BEGIN
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32.
Message transmitted by the gnunet-service-core process to its clients in response to an INIT message...
Definition: core.h:102
cryptographic primitives for GNUnet
Core notifying client that it is allowed to now transmit a message to the given target (response to G...
Definition: core.h:243
enum State state
current state of profiling
static struct GNUNET_TIME_Relative timeout
User defined timestamp for completing operations.
Definition: gnunet-arm.c:114
Client asking core to transmit a particular message to a particular target (response to GNUNET_MESSAG...
Definition: core.h:274
Client notifying core about the maximum-priority message it has in the queue for a particular target...
Definition: core.h:198
struct GNUNET_TESTBED_Peer * peer
The peer associated with this model.
static unsigned int size
Size of the "table".
Definition: peer.c:67
#define GNUNET_NETWORK_STRUCT_END
Define as empty, GNUNET_PACKED should suffice, but this won&#39;t work on W32;.
The identity of the host (wraps the signing key of the peer).
#define GNUNET_PACKED
gcc-ism to get packed structs.
struct GNUNET_MessageHeader header
Header with type GNUNET_MESSAGE_TYPE_CORE_INIT.
Definition: core.h:89
static struct GNUNET_TIME_Absolute deadline
Deadline for all consensuses.
Message sent by the service to clients to notify them about a peer disconnecting. ...
Definition: core.h:149
Message sent by the service to clients to notify them about messages being received or transmitted...
Definition: core.h:177
Header for all communications.
Message sent by the service to monitor clients to notify them about a peer changing status...
Definition: core.h:304
static unsigned long long reserved
How much space have we currently reserved?