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::draft12::fetch::FetchError;๐use crate::draft12::fetch::FetchState;๐use crate::draft12::fetch::FetchStateMachine;๐use crate::draft12::namespace::AnnounceState;๐use crate::draft12::namespace::AnnounceStateMachine;๐use crate::draft12::namespace::NamespaceError;๐use crate::draft12::namespace::SubscribeAnnouncesState;๐use crate::draft12::namespace::SubscribeAnnouncesStateMachine;๐use crate::draft12::publish::PublishError as PublishFlowError;๐use crate::draft12::publish::PublishState;๐use crate::draft12::publish::PublishStateMachine;๐use crate::draft12::session::request_id::RequestIdAllocator;๐use crate::draft12::session::request_id::RequestIdError;๐use crate::draft12::session::request_id::Role;๐use crate::draft12::session::setup;๐use crate::draft12::session::setup::SetupError;๐use crate::draft12::session::state::SessionError;๐use crate::draft12::session::state::SessionState;๐use crate::draft12::session::state::SessionStateMachine;๐use crate::draft12::subscription::SubscriptionError;๐use crate::draft12::subscription::SubscriptionState;๐use crate::draft12::subscription::SubscriptionStateMachine;๐use crate::draft12::track_status::TrackStatusError;๐use crate::draft12::track_status::TrackStatusState;๐use crate::draft12::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::draft12::error_codes::FetchErrorCode;๐use moqtap_codec::draft12::error_codes::SessionErrorCode;๐use moqtap_codec::draft12::error_codes::SubscribeAnnouncesErrorCode;๐use moqtap_codec::draft12::message;๐use moqtap_codec::draft12::message::Announce;๐use moqtap_codec::draft12::message::AnnounceCancel;๐use moqtap_codec::draft12::message::AnnounceError;๐use moqtap_codec::draft12::message::AnnounceOk;๐use moqtap_codec::draft12::message::ClientSetup;๐use moqtap_codec::draft12::message::ControlMessage;๐use moqtap_codec::draft12::message::Fetch;๐use moqtap_codec::draft12::message::FetchCancel;๐use moqtap_codec::draft12::message::FetchPayload;๐use moqtap_codec::draft12::message::FetchType;๐use moqtap_codec::draft12::message::GoAway;๐use moqtap_codec::draft12::message::MaxRequestId;๐use moqtap_codec::draft12::message::Publish;๐use moqtap_codec::draft12::message::PublishError;๐use moqtap_codec::draft12::message::PublishOk;๐use moqtap_codec::draft12::message::RequestsBlocked;๐use moqtap_codec::draft12::message::ServerSetup;๐use moqtap_codec::draft12::message::Subscribe;๐use moqtap_codec::draft12::message::SubscribeAnnounces;๐use moqtap_codec::draft12::message::SubscribeAnnouncesError;๐use moqtap_codec::draft12::message::SubscribeAnnouncesOk;๐use moqtap_codec::draft12::message::SubscribeDone;๐use moqtap_codec::draft12::message::SubscribeError;๐use moqtap_codec::draft12::message::SubscribeOk;๐use moqtap_codec::draft12::message::SubscribeUpdate;๐use moqtap_codec::draft12::message::TrackStatus;๐use moqtap_codec::draft12::message::TrackStatusRequest;๐use moqtap_codec::draft12::message::Unannounce;๐use moqtap_codec::draft12::message::Unsubscribe;๐use moqtap_codec::draft12::message::UnsubscribeAnnounces;๐use moqtap_codec::kvp::KeyValuePair;๐use moqtap_codec::kvp::KvpValue;๐use moqtap_codec::varint::VarInt;๐use moqtap_codec::types::*;๐
Structsยง
- Endpoint
- Unified draft-12 MoQT endpoint wrapping session lifecycle, request ID allocation, and all per-flow state machines (subscriptions, fetches, announces, subscribe-announces, 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 ๐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 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-12 endpoint operations.
Functionsยง
- prefixes_
overlap ๐ - Whether two namespace prefixes overlap.
Type Aliasesยง
- Namespace
Key ๐ - Key identifying a namespace (used for Announce maps).