Skip to main content

Module endpoint

Module endpoint 

Source
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::draft16::fetch::FetchError; πŸ”’
use crate::draft16::fetch::FetchState; πŸ”’
use crate::draft16::fetch::FetchStateMachine; πŸ”’
use crate::draft16::namespace::NamespaceError; πŸ”’
use crate::draft16::namespace::PublishNamespaceState; πŸ”’
use crate::draft16::namespace::PublishNamespaceStateMachine; πŸ”’
use crate::draft16::namespace::SubscribeNamespaceState; πŸ”’
use crate::draft16::namespace::SubscribeNamespaceStateMachine; πŸ”’
use crate::draft16::publish::PublishError as PublishFlowError; πŸ”’
use crate::draft16::publish::PublishState; πŸ”’
use crate::draft16::publish::PublishStateMachine; πŸ”’
use crate::draft16::session::request_id::RequestIdAllocator; πŸ”’
use crate::draft16::session::request_id::RequestIdError; πŸ”’
use crate::draft16::session::request_id::Role; πŸ”’
use crate::draft16::session::setup; πŸ”’
use crate::draft16::session::setup::SetupError; πŸ”’
use crate::draft16::session::state::SessionError; πŸ”’
use crate::draft16::session::state::SessionState; πŸ”’
use crate::draft16::session::state::SessionStateMachine; πŸ”’
use crate::draft16::subscription::SubscriptionError; πŸ”’
use crate::draft16::subscription::SubscriptionState; πŸ”’
use crate::draft16::subscription::SubscriptionStateMachine; πŸ”’
use crate::draft16::track_status::TrackStatusError; πŸ”’
use crate::draft16::track_status::TrackStatusState; πŸ”’
use crate::draft16::track_status::TrackStatusStateMachine; πŸ”’
use crate::malformed_tracks::MalformedTrackCondition; πŸ”’
use crate::malformed_tracks::MalformedTracks; πŸ”’
use crate::track_locations::ObjectLocation; πŸ”’
use crate::track_locations::ObjectRole; πŸ”’
use crate::track_locations::TrackLocations; πŸ”’
use crate::track_locations::TrackObjects; πŸ”’
use moqtap_codec::draft16::error_codes::RequestErrorCode; πŸ”’
use moqtap_codec::draft16::error_codes::SessionErrorCode; πŸ”’
use moqtap_codec::draft16::message; πŸ”’
use moqtap_codec::draft16::message::ClientSetup; πŸ”’
use moqtap_codec::draft16::message::ControlMessage; πŸ”’
use moqtap_codec::draft16::message::Fetch; πŸ”’
use moqtap_codec::draft16::message::FetchCancel; πŸ”’
use moqtap_codec::draft16::message::FetchPayload; πŸ”’
use moqtap_codec::draft16::message::FetchType; πŸ”’
use moqtap_codec::draft16::message::GoAway; πŸ”’
use moqtap_codec::draft16::message::MaxRequestId; πŸ”’
use moqtap_codec::draft16::message::MessageType; πŸ”’
use moqtap_codec::draft16::message::PublishDone; πŸ”’
use moqtap_codec::draft16::message::PublishNamespace; πŸ”’
use moqtap_codec::draft16::message::PublishNamespaceCancel; πŸ”’
use moqtap_codec::draft16::message::PublishNamespaceDone; πŸ”’
use moqtap_codec::draft16::message::RequestError; πŸ”’
use moqtap_codec::draft16::message::RequestOk; πŸ”’
use moqtap_codec::draft16::message::RequestUpdate; πŸ”’
use moqtap_codec::draft16::message::RequestsBlocked; πŸ”’
use moqtap_codec::draft16::message::ServerSetup; πŸ”’
use moqtap_codec::draft16::message::Subscribe; πŸ”’
use moqtap_codec::draft16::message::SubscribeNamespace; πŸ”’
use moqtap_codec::draft16::message::SubscribeOk; πŸ”’
use moqtap_codec::draft16::message::Unsubscribe; πŸ”’
use moqtap_codec::kvp::KeyValuePair; πŸ”’
use moqtap_codec::kvp::KvpValue; πŸ”’
use moqtap_codec::varint::VarInt; πŸ”’
use moqtap_codec::types::*; πŸ”’

StructsΒ§

Endpoint
Unified MoQT endpoint wrapping session lifecycle, request ID allocation, and all per-request state machines (subscriptions, fetches, namespaces).
FetchTrack πŸ”’
The track one fetch is for, which the fetch’s own state machine does not hold. A fetch names no Track Alias, so this is the only place a fetch’s track is written down; for a Joining Fetch, which names no track either, this is the joined subscription’s track resolved when the fetch was made.
InboundFetch πŸ”’
A fetch the peer opened with FETCH.
InboundPublishNamespace πŸ”’
An announcement the peer made with PUBLISH_NAMESPACE.
InboundSubscribe πŸ”’
A subscription the peer opened with SUBSCRIBE.
InboundTrackStatus πŸ”’
A track status the peer asked for with TRACK_STATUS.
TrackBinding πŸ”’
A Track Alias the peer has attached to a Full Track Name, and the request whose lifetime the attachment follows.

EnumsΒ§

BindingKind πŸ”’
Which of the two sequences Section 5.1 names established the subscription that owns a binding, and so which state machine says whether it still has one.
EndpointError
Errors that can occur during endpoint operations.
UpdatedRequest πŸ”’
The kinds Section 9.2.2’s qualifiers distinguish between.

ConstantsΒ§

FORWARD_PARAMETER πŸ”’
Section 9.2.2.8, β€œfor a subscription”.
NEW_GROUP_REQUEST_PARAMETER πŸ”’
Section 9.2.2.9, β€œfor a subscription”.
SUBSCRIBER_PRIORITY_PARAMETER πŸ”’
Section 9.2.2.3, β€œfor a subscription or FETCH”.
SUBSCRIPTION_FILTER_PARAMETER πŸ”’
Section 9.2.2.5, β€œfor a subscription”.

FunctionsΒ§

prefixes_overlap πŸ”’
Whether two namespace prefixes overlap.