Udipe 1.0
Solving the riddle of high-throughput UDP
Loading...
Searching...
No Matches
result.h
Go to the documentation of this file.
1#pragma once
2
9
10#include "connect.h"
11
12#include <limits.h>
13#include <stdalign.h>
14#include <stddef.h>
15
16
28 udipe_connect_result_t connect;
29 udipe_disconnect_result_t disconnect;
30 // TODO: Add and implement
31 /*udipe_send_result_t send; ///< Result of udipe_send()
32 udipe_recv_result_t recv; ///< Result of udipe_recv()*/
34
49typedef struct udipe_custom_payload_s {
52 alignas(void*) char bytes[2*sizeof(void*)];
54
55// Forward declaration of \ref udipe_future_t
56typedef struct udipe_future_s udipe_future_t;
57
68 size_t ready_idx;
69
78 udipe_future_t* next;
80
101
117 // TODO describe associated payload types
120 // TODO: Add and implement
121 /*UDIPE_SEND, ///< udipe_start_send()
122 UDIPE_RECV, ///< udipe_start_recv()*/
128
152
163
170
171 // You will notice that there is no `UDIPE_FAILURE_INTERNAL` or
172 // `UDIPE_FAILURE_SELF` result type for errors that originate from the
173 // operation itself. That is because such errors are not reported via the
174 // result type code, but instead encoded within a normal result payload.
175 //
176 // This way, error types do not need to be generic over all operation types
177 // supported by udipe, they can be specific to each individual operation
178 // type and only cover the error categories that are actually relevant to
179 // the operation of interest.
181
186typedef struct udipe_result_s {
191 union {
192 // TODO doc
194 // TODO doc
196 // TODO doc
198 // TODO doc
199 udipe_timer_repeat_payload_t timer_repeat;
201
Connection-related definitions.
struct udipe_future_s udipe_future_t
Definition future.h:231
struct udipe_timer_repeat_payload_s udipe_timer_repeat_payload_t
udipe_result_type_e
Definition result.h:116
@ UDIPE_CUSTOM
udipe_start_custom()
Definition result.h:123
@ UDIPE_TIMER_REPEAT
udipe_start_timer_repeat()
Definition result.h:127
@ UDIPE_FAILURE_DEPENDENCY
Definition result.h:162
@ UDIPE_CONNECT
udipe_start_connect()
Definition result.h:118
@ UDIPE_RESULT_INVALID
Definition result.h:151
@ UDIPE_DISCONNECT
udipe_start_disconnect()
Definition result.h:119
@ UDIPE_TIMER_ONCE
udipe_start_timer_once()
Definition result.h:126
@ UDIPE_FAILURE_CANCELED
Definition result.h:169
@ UDIPE_JOIN
udipe_start_join()
Definition result.h:124
@ UDIPE_UNORDERED
udipe_start_unordered()
Definition result.h:125
struct udipe_unordered_payload_s udipe_unordered_payload_t
struct udipe_custom_payload_s udipe_custom_payload_t
union udipe_network_payload_u udipe_network_payload_t
enum udipe_result_type_e udipe_result_type_t
struct udipe_result_s udipe_result_t
Definition result.h:49
char bytes[2 *sizeof(void *)]
Definition result.h:52
Definition result.h:186
union udipe_result_s::@0 payload
udipe_result_type_t type
Definition result.h:209
Definition result.h:89
udipe_future_t * next
Definition result.h:99
size_t missed_ticks
Definition result.h:93
Definition result.h:65
size_t ready_idx
Definition result.h:68
udipe_future_t * next
Definition result.h:78
Definition result.h:27
udipe_disconnect_result_t disconnect
Result of udipe_disconnect()
Definition result.h:29
udipe_connect_result_t connect
Result of udipe_connect()
Definition result.h:28