Expand description
Unified endpoint state machine orchestrating all MoQT protocol flows.
Re-exportsยง
use std::collections::HashMap;๐use std::collections::HashSet;๐use std::sync::Mutex;๐use crate::draft07::fetch::FetchError;๐use crate::draft07::fetch::FetchState;๐use crate::draft07::fetch::FetchStateMachine;๐use crate::draft07::namespace::AnnounceState;๐use crate::draft07::namespace::AnnounceStateMachine;๐use crate::draft07::namespace::NamespaceError;๐use crate::draft07::namespace::SubscribeAnnouncesState;๐use crate::draft07::namespace::SubscribeAnnouncesStateMachine;๐use crate::draft07::session::setup;๐use crate::draft07::session::setup::SetupError;๐use crate::draft07::session::state::SessionError;๐use crate::draft07::session::state::SessionState;๐use crate::draft07::session::state::SessionStateMachine;๐use crate::draft07::session::subscribe_id::SubscribeIdAllocator;๐use crate::draft07::session::subscribe_id::SubscribeIdError;๐use crate::draft07::subscription::SubscriptionError;๐use crate::draft07::subscription::SubscriptionState;๐use crate::draft07::subscription::SubscriptionStateMachine;๐use crate::draft07::track_status::TrackStatusError;๐use crate::draft07::track_status::TrackStatusState;๐use crate::draft07::track_status::TrackStatusStateMachine;๐use crate::forwarding_preference::ObjectForwardingPreference;๐use crate::forwarding_preference::TrackForwardingPreferences;๐use moqtap_codec::draft07::error_codes::SessionErrorCode;๐use moqtap_codec::draft07::error_codes::SubscribeErrorCode;๐use moqtap_codec::draft07::message;๐use moqtap_codec::draft07::message::Announce;๐use moqtap_codec::draft07::message::AnnounceCancel;๐use moqtap_codec::draft07::message::AnnounceError;๐use moqtap_codec::draft07::message::AnnounceOk;๐use moqtap_codec::draft07::message::ClientSetup;๐use moqtap_codec::draft07::message::ControlMessage;๐use moqtap_codec::draft07::message::Fetch;๐use moqtap_codec::draft07::message::FetchCancel;๐use moqtap_codec::draft07::message::GoAway;๐use moqtap_codec::draft07::message::MaxSubscribeId;๐use moqtap_codec::draft07::message::ServerSetup;๐use moqtap_codec::draft07::message::Subscribe;๐use moqtap_codec::draft07::message::SubscribeAnnounces;๐use moqtap_codec::draft07::message::SubscribeAnnouncesError;๐use moqtap_codec::draft07::message::SubscribeAnnouncesOk;๐use moqtap_codec::draft07::message::SubscribeDone;๐use moqtap_codec::draft07::message::SubscribeError;๐use moqtap_codec::draft07::message::SubscribeOk;๐use moqtap_codec::draft07::message::SubscribeUpdate;๐use moqtap_codec::draft07::message::TrackStatus;๐use moqtap_codec::draft07::message::TrackStatusRequest;๐use moqtap_codec::draft07::message::Unannounce;๐use moqtap_codec::draft07::message::Unsubscribe;๐use moqtap_codec::draft07::message::UnsubscribeAnnounces;๐use moqtap_codec::kvp::KeyValuePair;๐use moqtap_codec::varint::VarInt;๐use moqtap_codec::types::*;๐
Structsยง
- Endpoint
- Unified draft-07 MoQT endpoint wrapping session lifecycle, subscribe ID allocation, and all per-flow state machines (subscriptions, fetches, announces, subscribe-announces, track statuses).
- Inbound
Announce ๐ - An announcement the peer made with ANNOUNCE.
- Inbound
Fetch ๐ - A FETCH the peer sent, and how far the fetch it opened has got.
- Inbound
Subscribe ๐ - A SUBSCRIBE the peer sent, and how far the subscription it opened has got.
- Inbound
Subscribe ๐Announces - A SUBSCRIBE_ANNOUNCES the peer sent, and how far the namespace subscription it opens has got.
- Inbound
Track ๐Status - A track status the peer asked for with TRACK_STATUS_REQUEST.
- Track
Binding ๐ - A Track Alias attached to a Full Track Name, and nothing else: the subscription whose lifetime the attachment follows is the mapโs key.
Enumsยง
- Endpoint
Error - Errors that can occur during draft-07 endpoint operations.
- Role
- Which side of the session this endpoint is.
- Subscribe
Side - Which end of the session opened a subscription.
Functionsยง
- prefixes_
overlap ๐ - Whether two namespace prefixes overlap.
Type Aliasesยง
- Namespace
Key ๐ - Key identifying a namespace (used for Announce / SubscribeAnnounces maps).
- Track
Key ๐ - Key identifying a track (namespace + track name).