6#include "quicr/detail/messages.h"
13 using namespace quicr;
55 :
Transport(cfg, std::make_shared<ThreadedTickService>())
94 uint64_t subscribe_id,
95 const std::shared_ptr<PublishTrackHandler>& track_handler,
96 bool ephemeral =
false);
107 const std::shared_ptr<PublishTrackHandler>& track_handler);
120 uint64_t subscribe_id,
121 const SubscribeResponse& subscribe_response);
200 const std::vector<ConnectionHandle>& subscribers,
243 std::pair<std::optional<messages::SubscribeAnnouncesErrorCode>, std::vector<TrackNamespace>>;
263 uint64_t subscribe_id,
264 uint64_t proposed_track_alias,
265 quicr::messages::FilterType filter_type,
288 uint64_t subscribe_id,
301 uint64_t subscribe_id,
319 bool ProcessCtrlMessage(ConnectionContext& conn_ctx,
BytesSpan msg_bytes)
override;
MoQ Server.
Definition server.h:21
virtual void OnFetchOk(ConnectionHandle connection_handle, uint64_t subscribe_id, const FullTrackName &track_full_name, const FetchAttributes &attributes)
Event to run on sending FetchOk.
virtual std::vector< ConnectionHandle > UnannounceReceived(ConnectionHandle connection_handle, const TrackNamespace &track_namespace)=0
Callback notification for unannounce received.
void UnbindPublisherTrack(ConnectionHandle connection_handle, const std::shared_ptr< PublishTrackHandler > &track_handler)
Unbind a server publish track handler.
void MetricsSampled(ConnectionHandle connection_handle, const ConnectionMetrics &metrics) override
Notification callback to provide sampled metrics.
virtual void ResolveSubscribe(ConnectionHandle connection_handle, uint64_t subscribe_id, const SubscribeResponse &subscribe_response)
Accept or reject an subscribe that was received.
virtual void FetchCancelReceived(ConnectionHandle connection_handle, uint64_t subscribe_id)=0
Callback notification on receiving a FetchCancel message.
virtual void SubscribeReceived(ConnectionHandle connection_handle, uint64_t subscribe_id, uint64_t proposed_track_alias, quicr::messages::FilterType filter_type, const FullTrackName &track_full_name, const SubscribeAttributes &subscribe_attributes)
Callback notification for new subscribe received.
virtual void UnsubscribeReceived(ConnectionHandle connection_handle, uint64_t subscribe_id)=0
Callback notification on unsubscribe received.
std::pair< std::optional< messages::SubscribeAnnouncesErrorCode >, std::vector< TrackNamespace > > SubscribeAnnouncesResponse
Callback notification for new subscribe announces received.
Definition server.h:242
Status Start()
Starts server transport thread to listen for new connections.
virtual void NewGroupRequested(ConnectionHandle connection_handle, uint64_t subscribe_id, uint64_t track_alias)
virtual SubscribeAnnouncesResponse SubscribeAnnouncesReceived(ConnectionHandle connection_handle, const TrackNamespace &prefix_namespace, const PublishAnnounceAttributes &announce_attributes)
virtual void AnnounceReceived(ConnectionHandle connection_handle, const TrackNamespace &track_namespace, const PublishAnnounceAttributes &publish_announce_attributes)
Callback notification for new announce received that needs to be authorized.
virtual ClientSetupResponse ClientSetupReceived(ConnectionHandle connection_handle, const ClientSetupAttributes &client_setup_attributes)=0
Callback on client setup message.
void NewConnectionAccepted(ConnectionHandle connection_handle, const ConnectionRemoteInfo &remote) override
Callback notification on new connection.
void ResolveAnnounce(ConnectionHandle connection_handle, const TrackNamespace &track_namespace, const std::vector< ConnectionHandle > &subscribers, const AnnounceResponse &announce_response)
Accept or reject an announce that was received.
void BindPublisherTrack(ConnectionHandle connection_handle, uint64_t subscribe_id, const std::shared_ptr< PublishTrackHandler > &track_handler, bool ephemeral=false)
Bind a server publish track handler based on a subscribe.
void ConnectionStatusChanged(ConnectionHandle connection_handle, ConnectionStatus status) override
Callback notification for connection status/state change.
Server(const ServerConfig &cfg, std::shared_ptr< ThreadedTickService > tick_service)
Definition server.h:59
virtual bool FetchReceived(ConnectionHandle connection_handle, uint64_t subscribe_id, const FullTrackName &track_full_name, const FetchAttributes &attributes)
Callback notification on Fetch message received.
Server(const ServerConfig &cfg)
MoQ Server constructor to create the MOQ server mode instance.
Definition server.h:54
virtual void UnsubscribeAnnouncesReceived(ConnectionHandle connection_handle, const TrackNamespace &prefix_namespace)=0
Callback notification for Unsubscribe announces received.
An N-tuple representation of a MOQ namespace.
Definition track_name.h:21
MOQ Implementation supporting both client and server modes.
Definition transport.h:34
Status
Status of the transport.
Definition transport.h:42
ConnectionStatus
Connection status codes.
Definition transport.h:77
Definition transport.h:26
Span< const Byte > BytesSpan
Definition common.h:23
uint64_t ConnectionHandle
Definition common.h:24
Client Setup Attributes.
Definition common.h:49
Fetch attributes.
Definition common.h:79
Full track name struct.
Definition track_name.h:267
Publish announce attributes.
Definition common.h:43
Response to received MOQT Announce message.
Definition server.h:33
std::optional< Bytes > reason_phrase
Definition server.h:46
ReasonCode
Definition server.h:40
ReasonCode reason_code
Definition server.h:44
Response to received MOQT ClientSetup message.
Definition server.h:27
Subscribe attributes.
Definition common.h:32
Connection remote information.
Definition transport.h:89