GNUnet  0.11.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 {
89 
94 };
95 
96 
102 {
107 
112 
117 };
118 
119 
125 {
130 
135 
140 };
141 
142 
148 {
153 
158 
162  struct GNUNET_PeerIdentity peer;
163 };
164 
165 
176 {
182 
186  struct GNUNET_PeerIdentity peer;
187 
188  /* Followed by payload (message or just header), variable size */
189 };
190 
191 
197 {
202 
206  uint32_t priority GNUNET_PACKED;
207 
213 
217  struct GNUNET_PeerIdentity peer;
218 
223 
227  uint16_t size GNUNET_PACKED;
228 
232  uint16_t smr_id GNUNET_PACKED;
233 };
234 
235 
242 {
247 
254  uint16_t size GNUNET_PACKED;
255 
259  uint16_t smr_id GNUNET_PACKED;
260 
264  struct GNUNET_PeerIdentity peer;
265 };
266 
267 
273 {
278 
283  uint32_t priority GNUNET_PACKED;
284 
290 
294  struct GNUNET_PeerIdentity peer;
295 };
296 
297 
303 {
308 
313 
317  struct GNUNET_PeerIdentity peer;
318 
323 };
324 
325 
327 #endif
328 /* end of core.h */
Message sent by the service to clients to notify them about a peer connecting.
Definition: core.h:124
static struct GNUNET_PeerIdentity my_identity
Identity of this peer.
uint32_t options
Options, see GNUNET_CORE_OPTION_ values.
Definition: core.h:93
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:101
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:241
enum State state
current state of profiling
static struct GNUNET_TIME_Relative timeout
Desired timeout for the lookup (default is no timeout).
Definition: gnunet-abd.c:61
Client asking core to transmit a particular message to a particular target (response to GNUNET_MESSAG...
Definition: core.h:272
Client notifying core about the maximum-priority message it has in the queue for a particular target...
Definition: core.h:196
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:88
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:147
Message sent by the service to clients to notify them about messages being received or transmitted...
Definition: core.h:175
Header for all communications.
Message sent by the service to monitor clients to notify them about a peer changing status...
Definition: core.h:302
static unsigned long long reserved
How much space have we currently reserved?