wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
Loading...
Searching...
No Matches
wired_moqtrun_rdv Struct Reference

One SUBSCRIBE held for a publisher. More...

#include <moqtrun.h>

Data Fields

int in_use
 1 while the slot holds a SUBSCRIBE.
wired_wt_session * wt
 The subscriber's session (owned by the transport).
u64 stream_id
 The SUBSCRIBE's request stream.
u64 deadline_ms
 wired_moqt_tick clock at which the hold answers TIMEOUT.
u8 ns [WIRED_MOQTRUN_MAX_NS]
 The Full Track Name as the hub keys tracks (WIRED_MOQTRUN_MAX_NS / _MAX_NAME: a longer name is never held – no PUBLISH can claim it).
usz ns_len
 Bytes of ns in use.
u8 name [WIRED_MOQTRUN_MAX_NAME]
 The Track Name, copied.
usz name_len
 Bytes of name in use.
u8 body [WIRED_MOQTRUN_CTL_MSG_MAX]
 The SUBSCRIBE body as received, re-decoded in the session's own draft when the hold resolves (the decoded views dangle after the dispatch).
usz body_len
 Bytes of body in use.
u8 up_only
 1 when the SUBSCRIBE carried no RENDEZVOUS_TIMEOUT and is held only for its upstream SUBSCRIBE to a namespace publisher (draft-18/19 9.5, draft-22 7.6): no deadline, and no announcer left answers it REQUEST_ERROR at once.
u8 repath
 1 when the slot holds an Established subscription whose upstream ended on the publisher's side and that waits for another announcer (draft-22 7.6.1): already answered, so it is re-attached silently or ends with one PUBLISH_DONE at deadline_ms, never answered again.
u64 done_status
 repath only: the PUBLISH_DONE Status Code owed at deadline_ms.
u64 done_count
 repath only: that PUBLISH_DONE's Stream Count.
u64 tried
 repath only: bit i is set for peer slot i, asked for the track in this wait or the one that ended it; its next PUBLISH_NAMESPACE clears it.

Detailed Description

One SUBSCRIBE held for a publisher.

Owner key is (wt, stream_id) – never a pointer/index into hub->reqs[]: the request slot is looked up again at resolve/expiry, so a stream already gone simply ends the hold.

Field Documentation

◆ body

u8 wired_moqtrun_rdv::body[WIRED_MOQTRUN_CTL_MSG_MAX]

The SUBSCRIBE body as received, re-decoded in the session's own draft when the hold resolves (the decoded views dangle after the dispatch).

WIRED_MOQTRUN_CTL_MSG_MAX bounds every body this hub accepts, so it always fits.


The documentation for this struct was generated from the following file: