Expand description
Unified endpoint state machine orchestrating all MoQT protocol flows.
Re-exportsยง
use std::collections::HashMap;๐use std::sync::Arc;๐use std::sync::Mutex;๐use std::sync::MutexGuard;๐use crate::draft13::fetch::FetchError;๐use crate::draft13::fetch::FetchState;๐use crate::draft13::fetch::FetchStateMachine;๐use crate::draft13::namespace::AnnounceState;๐use crate::draft13::namespace::AnnounceStateMachine;๐use crate::draft13::namespace::NamespaceError;๐use crate::draft13::namespace::SubscribeNamespaceState;๐use crate::draft13::namespace::SubscribeNamespaceStateMachine;๐use crate::draft13::publish::PublishError as PublishFlowError;๐use crate::draft13::publish::PublishState;๐use crate::draft13::publish::PublishStateMachine;๐use crate::draft13::session::request_id::RequestIdAllocator;๐use crate::draft13::session::request_id::RequestIdError;๐use crate::draft13::session::request_id::Role;๐use crate::draft13::session::setup;๐use crate::draft13::session::setup::SetupError;๐use crate::draft13::session::state::SessionError;๐use crate::draft13::session::state::SessionState;๐use crate::draft13::session::state::SessionStateMachine;๐use crate::draft13::subscription::SubscriptionError;๐use crate::draft13::subscription::SubscriptionState;๐use crate::draft13::subscription::SubscriptionStateMachine;๐use crate::draft13::track_status::TrackStatusError;๐use crate::draft13::track_status::TrackStatusState;๐use crate::draft13::track_status::TrackStatusStateMachine;๐use crate::forwarding_preference::ObjectForwardingPreference;๐use crate::forwarding_preference::TrackForwardingPreferences;๐use crate::malformed_tracks::MalformedTrackCondition;๐use crate::malformed_tracks::MalformedTracks;๐use crate::track_locations::EndOfTrackPlacement;๐use crate::track_locations::ObjectLocation;๐use crate::track_locations::ObjectRole;๐use crate::track_locations::TrackFault;๐use crate::track_locations::TrackLocations;๐use crate::track_locations::TrackObjects;๐use moqtap_codec::draft13::error_codes::FetchErrorCode;๐use moqtap_codec::draft13::error_codes::SessionErrorCode;๐use moqtap_codec::draft13::error_codes::SubscribeNamespaceErrorCode;๐use moqtap_codec::draft13::message;๐use moqtap_codec::draft13::message::Announce;๐use moqtap_codec::draft13::message::AnnounceCancel;๐use moqtap_codec::draft13::message::AnnounceError;๐use moqtap_codec::draft13::message::AnnounceOk;๐use moqtap_codec::draft13::message::ClientSetup;๐use moqtap_codec::draft13::message::ControlMessage;๐use moqtap_codec::draft13::message::Fetch;๐use moqtap_codec::draft13::message::FetchCancel;๐use moqtap_codec::draft13::message::FetchPayload;๐use moqtap_codec::draft13::message::FetchType;๐use moqtap_codec::draft13::message::GoAway;๐use moqtap_codec::draft13::message::MaxRequestId;๐use moqtap_codec::draft13::message::Publish;๐use moqtap_codec::draft13::message::PublishError;๐use moqtap_codec::draft13::message::PublishOk;๐use moqtap_codec::draft13::message::RequestsBlocked;๐use moqtap_codec::draft13::message::ServerSetup;๐use moqtap_codec::draft13::message::Subscribe;๐use moqtap_codec::draft13::message::SubscribeDone;๐use moqtap_codec::draft13::message::SubscribeError;๐use moqtap_codec::draft13::message::SubscribeNamespace;๐use moqtap_codec::draft13::message::SubscribeNamespaceError;๐use moqtap_codec::draft13::message::SubscribeNamespaceOk;๐use moqtap_codec::draft13::message::SubscribeOk;๐use moqtap_codec::draft13::message::SubscribeUpdate;๐use moqtap_codec::draft13::message::TrackStatus;๐use moqtap_codec::draft13::message::TrackStatusError as TrackStatusErrorMsg;๐use moqtap_codec::draft13::message::TrackStatusOk;๐use moqtap_codec::draft13::message::Unannounce;๐use moqtap_codec::draft13::message::Unsubscribe;๐use moqtap_codec::draft13::message::UnsubscribeNamespace;๐use moqtap_codec::kvp::KeyValuePair;๐use moqtap_codec::kvp::KvpValue;๐use moqtap_codec::varint::VarInt;๐use moqtap_codec::types::*;๐
Structsยง
- Endpoint
- Unified draft-13 MoQT endpoint wrapping session lifecycle, request ID allocation, and all per-flow state machines (subscriptions, fetches, announces, subscribe-namespaces, track statuses).
- Fetch
Track ๐ - The track a fetch this endpoint made asked for: the one a standalone FETCH names, or the one the subscription a Joining Fetch joins is for.
- Inbound
Announce ๐ - An announcement the peer made with ANNOUNCE.
- Inbound
Fetch ๐ - A fetch the peer opened with FETCH.
- Inbound
Publish ๐ - A subscription the peer opened with PUBLISH.
- Inbound
Subscribe ๐ - A subscription the peer opened with SUBSCRIBE.
- Inbound
Subscribe ๐Namespace - A SUBSCRIBE_NAMESPACE 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.
- Track
Binding ๐ - A Track Alias the peer has attached to a Full Track Name, and the request whose lifetime the attachment follows.
Enumsยง
- Binding
Kind ๐ - Which of the two sequences Section 4.1 names established the subscription that owns a binding, and so which record says whether it still has one.
- Endpoint
Error - Errors that can occur during draft-13 endpoint operations.
Functionsยง
- prefixes_
overlap ๐ - Whether two namespace prefixes overlap.
Type Aliasesยง
- Namespace
Key ๐ - Key identifying a namespace (used for Announce maps).