19 class SubscribeNamespaceHandler;
65 std::shared_ptr<SubscribeTrackHandler>
184 const std::shared_ptr<Session>& session,
185 std::uint64_t request_id,
187 std::weak_ptr<SubscribeNamespaceHandler> sub_ns_handler);
200 const std::shared_ptr<Session>& session,
216 const std::shared_ptr<Session>& session,
217 std::uint64_t request_id,
233 const std::shared_ptr<Session>& session,
234 std::uint64_t request_id,
246 std::uint64_t request_id);
258 const std::shared_ptr<Session>& session,
316 const std::shared_ptr<Session>& session,
332 const std::shared_ptr<Session>& session,
348 const std::shared_ptr<Session>& session,
349 std::uint64_t request_id,
Holds either a success value or an error value.
Definition: expected.h:65
The reply to a callback, which may be answered immediately or deferred.
Definition: reply.h:31
Status
Status of the transport.
Definition: session.h:76
An N-tuple representation of a MOQ namespace.
Definition: track_name.h:22
Definition: attributes.h:13
PublishNamespaceErrorCode
Why a publish namespace was rejected, carried by the error of a Reply.
Definition: session_callbacks.h:76
@ kOk
Vestigial success value; do not return it as an error.
@ kInternalError
Unspecified application or endpoint failure.
FetchErrorCode
Why a fetch was rejected, carried by the error of a Reply.
Definition: session_callbacks.h:88
@ kInvalidRange
Requested fetch range is invalid.
@ kNoObjects
No objects are available in the requested range.
@ kOk
Vestigial success value; do not return it as an error.
@ kInternalError
Unspecified application or endpoint failure.
PublishErrorCode
Why a publish was rejected, carried by the error of a Reply.
Definition: session_callbacks.h:53
@ kNotAuthorized
Publisher is not authorized.
@ kRejected
Publication was declined for another reason.
@ kNotSupported
Receiving publications is unsupported.
@ kInternalError
Unspecified application or endpoint failure.
RequestErrorCode
Why a request was rejected, carried by the error of a Reply.
Definition: session_callbacks.h:28
@ kUnauthorized
Requester is not authorized.
@ kGoingAway
The request is going away.
@ kDoesNotExist
Requested resource does not exist.
@ kExpiredAuthToken
Authorization token has expired.
@ kMalformedAuthToken
Authorization token is malformed.
@ kRedirect
A request should redirect with the given Redirect info.
@ kInvalidRange
Requested object range is invalid.
@ kTimeout
Request could not be completed before its deadline.
@ kInvalidJoiningRequestId
Joining fetch references an invalid request.
@ kPrefixOverlap
Namespace prefix overlaps an existing request incompatibly.
@ kUninterested
Endpoint is no longer interested.
@ kNotSupported
Requested operation is unsupported.
@ kDuplicateSubscription
Equivalent subscription already exists.
@ kMalformedTrack
Track name or properties are malformed.
@ kInternalError
Unspecified application or endpoint failure.
StreamClosedFlag
Peer or transport event that closed a stream direction.
Definition: connection.h:29
Application-facing metrics for one connection sample period.
Definition: metrics.h:326
Full track name struct.
Definition: track_name.h:436
Attributes of an inbound joining FETCH request.
Definition: attributes.h:138
Attributes of an inbound PUBLISH request.
Definition: attributes.h:93
Publish namespace attributes.
Definition: attributes.h:31
Attributes received in response to a successful PUBLISH request.
Definition: attributes.h:49
Successful application response to an inbound PUBLISH request.
Definition: session_callbacks.h:62
std::shared_ptr< SubscribeTrackHandler > handler
Handler that receives objects from the accepted publication.
Definition: session_callbacks.h:66
const PublishOkAttributes attributes
Attributes to return in PUBLISH_OK.
Definition: session_callbacks.h:63
Callback interface for session events common to both client and server mode.
Definition: session_callbacks.h:122
virtual void StatusChanged(const std::shared_ptr< Session > &session, Status status)
Callback notification for status/state change.
virtual void MetricsSampled(const std::shared_ptr< Session > &session, const ConnectionMetrics &metrics)
Notification callback to provide sampled connection metrics.
virtual void OnStreamClosed(std::uint64_t stream_id, StreamClosedFlag flag)
Notify that a QUIC stream closed.
virtual Expected< void, Error< ErrorCode > > SetupReceived(const std::shared_ptr< Session > &session, const SetupAttributes &setup_attributes)
Callback on receipt of the peer's SETUP message.
virtual Reply< const FetchResponse, FetchErrorCode > JoiningFetchReceived(const std::shared_ptr< Session > &session, std::uint64_t request_id, const FullTrackName &track_full_name, const JoiningFetchAttributes &attributes)
Event to run on receiving a Joining Fetch request.
virtual Reply< void, FetchErrorCode > FetchCancelReceived(const std::shared_ptr< Session > &session, std::uint64_t request_id)
Callback notification on receiving a FetchCancel message.
virtual Reply< const FetchResponse, FetchErrorCode > StandaloneFetchReceived(const std::shared_ptr< Session > &session, std::uint64_t request_id, const FullTrackName &track_full_name, const StandaloneFetchAttributes &attributes)
Event to run on receiving a Standalone Fetch request.
virtual Reply< TrackStatusResponse, RequestErrorCode > TrackStatusReceived(const std::shared_ptr< Session > &session, const FullTrackName &track_full_name)
Callback notification for track status message received.
virtual Reply< void, PublishNamespaceErrorCode > PublishNamespaceReceived(const std::shared_ptr< Session > &session, const TrackNamespace &track_namespace, const PublishNamespaceAttributes &publish_namespace_attributes)
Callback notification for announce received by subscribe namespace.
virtual ~Callbacks()=default
Destroy the callback interface.
virtual Reply< const PublishResponse, PublishErrorCode > PublishReceived(const std::shared_ptr< Session > &session, std::uint64_t request_id, const PublishAttributes &publish_attributes, std::weak_ptr< SubscribeNamespaceHandler > sub_ns_handler)
Callback notification for new publish received.
Callback interface for session events specific to client mode.
Definition: session_callbacks.h:266
virtual Reply< void, ErrorCode > UnpublishedSubscribeReceived(const std::shared_ptr< Session > &session, const FullTrackName &track_full_name, const SubscribeAttributes &subscribe_attributes)
Callback notification for new subscribe received that doesn't match an existing publish track.
virtual ~ClientCallbacks()=default
Destroy the client callback interface.
Callback interface for session events specific to server mode.
Definition: session_callbacks.h:293
virtual Reply< std::vector< TrackNamespace >, RequestErrorCode > SubscribeNamespaceReceived(const std::shared_ptr< Session > &session, const TrackNamespace &prefix_namespace, const SubscribeNamespaceAttributes &attributes)
Callback notification for new subscribe namespace received.
virtual void UnsubscribeReceived(const std::shared_ptr< Session > &session, std::uint64_t request_id)
Callback notification on unsubscribe received.
virtual Reply< SubscribeResponse, RequestErrorCode > SubscribeReceived(const std::shared_ptr< Session > &session, std::uint64_t request_id, const FullTrackName &track_full_name, const SubscribeAttributes &subscribe_attributes)
Callback notification for new subscribe received.
virtual void UnsubscribeNamespaceReceived(const std::shared_ptr< Session > &session, const TrackNamespace &prefix_namespace)
Callback notification for unsubscribe namespace received.
virtual Reply< std::vector< TrackNamespace >, RequestErrorCode > SubscribeTracksReceived(const std::shared_ptr< Session > &session, const TrackNamespace &prefix_namespace, const SubscribeNamespaceAttributes &attributes)
Callback notification for new subscribe tracks received.
virtual void OnStreamClosed(std::uint64_t stream_id, StreamClosedFlag flag)
Notify that a server-side QUIC stream closed.
virtual void PublishDoneReceived(const std::shared_ptr< Session > &session, std::uint64_t request_id)
Callback notification on publish done received.
virtual void PublishNamespaceDoneReceived(const std::shared_ptr< Session > &session, std::uint64_t request_id)
Callback notification for publish namespace done received.
virtual ~ServerCallbacks()=default
Destroy the server callback interface.
virtual Reply< void, ErrorCode > NewGroupRequested(const FullTrackName &track_full_name, std::uint64_t group_id)
New group requested received by a subscription.
Peer setup attributes.
Definition: attributes.h:39
Attributes of an inbound standalone FETCH request.
Definition: attributes.h:126
Subscribe attributes.
Definition: attributes.h:75
Attributes of an inbound namespace subscription request.
Definition: attributes.h:151