23#ifndef PROTOCORE_H2_CONN_H
24#define PROTOCORE_H2_CONN_H
28#if PROTOCORE_ENABLE_HTTP2
32#define PROTOCORE_H2_FRAME_HDR_CAP 16u
34#define PROTOCORE_H2_CTL_FRAME_MAX 17u
42#define PROTOCORE_H2_CONN_BORROW \
43 ((size_t)PROTOCORE_H2_CONN_RECORD + PROTOCORE_H2_MAX_FRAME + PROTOCORE_H2_HDR_BLOCK + PROTOCORE_H2_HDR_BLOCK + \
44 PROTOCORE_H2_FRAME_HDR_CAP)
50 void (*write)(
void *io,
const uint8_t *data,
size_t len);
52 void (*on_header)(
void *app, uint32_t stream_id,
const char *name,
size_t nlen,
const char *val,
size_t vlen);
59 void (*on_data)(
void *app, uint32_t stream_id,
const uint8_t *data,
size_t len,
proto_bool end_stream);
67 const H2Callbacks *cb;
82 const char *content_type;
114 H2ConnInitArgs init_args;
115 H2ConnRecvArgs recv_args;
116 H2ConnRespondArgs respond_args;
117 H2ConnGoawayArgs goaway_args;
122extern H2ConnVars H2ConnV;
127 void (*
const init)(uint8_t *work);
128 void (*
const recv)(uint8_t *work);
129 void (*
const respond)(uint8_t *work);
130 void (*
const goaway)(uint8_t *work);
135void protocore_h2_conn_init(uint8_t *work);
136void protocore_h2_conn_recv(uint8_t *work);
137void protocore_h2_conn_respond(uint8_t *work);
138void protocore_h2_conn_goaway(uint8_t *work);
144static const H2ConnNs H2Conn __attribute__((unused)) = {
145 .init = protocore_h2_conn_init,
146 .recv = protocore_h2_conn_recv,
147 .respond = protocore_h2_conn_respond,
148 .goaway = protocore_h2_conn_goaway,
#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