|
wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
|
One reliable-relay ring: the publisher's relayed bytes plus every subscriber's cursor and the publisher-side backpressure state. More...
#include <moqtrel.h>
Data Fields | |
| u8 | buf [WIRED_MOQTREL_CAP] |
| Ring storage; byte at absolute offset o lives at o % CAP. | |
| u64 | head |
| Absolute offset below which bytes have been reclaimed (rewritable). | |
| u64 | tail |
| Absolute offset one past the last appended byte. | |
| int | in_use |
| 1 while this pool entry is bound to a relayed track. | |
| int | fin_seen |
| 1 once the publisher's stream FIN arrived. | |
| int | held |
| 1 while the publisher's receive credit is held by the hub. | |
| wired_wt_session * | pub |
| Publisher session, kept so the hub can hold/release its credit. | |
| u64 | pub_stream |
| Publisher's stream id for the same hold/release calls. | |
| u64 | bound_ms |
| Time (ms) the ring was bound; bounds the wait for a first cursor. | |
| moqtrel_sub | subs [WIRED_MOQTREL_MAX_SUBS] |
| Per-subscriber read cursors, indexed like the hub's sub table. | |
| u64 | mark_end [WIRED_MOQTREL_MARKS] |
| Arrival marks, oldest first: bytes below mark_end[k] and at or past mark_end[k-1] reached the hub at mark_ms[k]. | |
| u64 | mark_ms [WIRED_MOQTREL_MARKS] |
| Arrival time (ms) of each mark, parallel to mark_end. | |
| u32 | marks |
| Marks in use (mark_end[0..marks), mark_ms[0..marks)). | |
One reliable-relay ring: the publisher's relayed bytes plus every subscriber's cursor and the publisher-side backpressure state.
| u64 moqtrel_buf::mark_end[WIRED_MOQTREL_MARKS] |
Arrival marks, oldest first: bytes below mark_end[k] and at or past mark_end[k-1] reached the hub at mark_ms[k].
Marks wholly reclaimed are dropped (moqtrel_reclaim).