31#ifndef PROTOCORE_QUIC_CONN_H
32#define PROTOCORE_QUIC_CONN_H
36#if PROTOCORE_ENABLE_HTTP3
40#ifndef PROTOCORE_QUIC_MAX_DATAGRAM
42#ifndef PROTOCORE_QUIC_STREAM_RX
43#define PROTOCORE_QUIC_STREAM_RX 2048
45#ifndef PROTOCORE_QUIC_PTO_MS
46#define PROTOCORE_QUIC_PTO_MS 1000
68 void (*on_stream_data)(
void *app, uint8_t *qc, uint64_t stream_id,
const uint8_t *data,
size_t len,
proto_bool fin);
70 void (*on_handshake_done)(
void *app, uint8_t *qc);
77 const struct QuicTlsConfig *cfg;
80 const uint8_t *peer_scid;
81 uint8_t peer_scid_len;
82 const uint8_t *our_scid;
89 const uint8_t *datagram;
104} QuicConnTimeoutArgs;
113} QuicConnStreamSendArgs;
180 QuicConnCallbacks cb;
181 QuicConnInitArgs init_args;
182 QuicConnRecvArgs recv_args;
183 QuicConnSendArgs send_args;
184 QuicConnTimeoutArgs timeout_args;
185 QuicConnStreamSendArgs stream_send_args;
186 QuicConnOwnsArgs owns_args;
187 QuicConnCloseArgs close_args;
195extern QuicConnVars QuicConnV;
200 void (*
const init)(uint8_t *work);
201 void (*
const callbacks)(uint8_t *work);
202 void (*
const recv)(uint8_t *work);
203 void (*
const send)(uint8_t *work);
204 void (*
const on_timeout)(uint8_t *work);
205 void (*
const stream_send)(uint8_t *work);
206 void (*
const owns)(uint8_t *work);
207 void (*
const close)(uint8_t *work);
208 void (*
const close_app)(uint8_t *work);
209 void (*
const is_established)(uint8_t *work);
210 void (*
const is_closed)(uint8_t *work);
215void protocore_quic_conn_init(uint8_t *work);
216void protocore_quic_conn_callbacks(uint8_t *work);
217void protocore_quic_conn_recv(uint8_t *work);
218void protocore_quic_conn_send(uint8_t *work);
219void protocore_quic_conn_on_timeout(uint8_t *work);
220void protocore_quic_conn_stream_send(uint8_t *work);
221void protocore_quic_conn_owns(uint8_t *work);
222void protocore_quic_conn_close(uint8_t *work);
223void protocore_quic_conn_close_app(uint8_t *work);
224void protocore_quic_conn_is_established(uint8_t *work);
225void protocore_quic_conn_is_closed(uint8_t *work);
231static const QuicConnNs QuicConn __attribute__((unused)) = {
232 .init = protocore_quic_conn_init,
233 .callbacks = protocore_quic_conn_callbacks,
234 .recv = protocore_quic_conn_recv,
235 .send = protocore_quic_conn_send,
236 .on_timeout = protocore_quic_conn_on_timeout,
237 .stream_send = protocore_quic_conn_stream_send,
238 .owns = protocore_quic_conn_owns,
239 .close = protocore_quic_conn_close,
240 .close_app = protocore_quic_conn_close_app,
241 .is_established = protocore_quic_conn_is_established,
242 .is_closed = protocore_quic_conn_is_closed,
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS