LibQuicR
Loading...
Searching...
No Matches
fetch_track_handler.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) 2024 Cisco Systems
2// SPDX-License-Identifier: BSD-2-Clause
3
4#pragma once
5
6#include <quicr/detail/messages.h>
7#include <quicr/metrics.h>
9
10namespace quicr {
12 {
13 protected:
25 FetchTrackHandler(const FullTrackName& full_track_name,
26 messages::ObjectPriority priority,
27 messages::GroupOrder group_order,
28 messages::GroupId start_group,
29 messages::GroupId end_group,
30 messages::GroupId start_object,
31 messages::GroupId end_object)
32 : SubscribeTrackHandler(full_track_name, priority, group_order, quicr::messages::FilterType::kLatestGroup)
33 , start_group_(start_group)
34 , start_object_(start_object)
35 , end_group_(end_group)
36 , end_object_(end_object)
37 {
38 }
39
40 public:
54 static std::shared_ptr<FetchTrackHandler> Create(const FullTrackName& full_track_name,
55 messages::ObjectPriority priority,
56 messages::GroupOrder group_order,
57 messages::GroupId start_group,
58 messages::GroupId end_group,
59 messages::GroupId start_object,
60 messages::GroupId end_object)
61 {
62 return std::shared_ptr<FetchTrackHandler>(new FetchTrackHandler(
63 full_track_name, priority, group_order, start_group, end_group, start_object, end_object));
64 }
65
70 constexpr const messages::GroupId& GetStartGroup() const noexcept { return start_group_; }
71
76 constexpr const messages::GroupId& GetEndGroup() const noexcept { return end_group_; }
77
82 constexpr const messages::GroupId& GetStartObject() const noexcept { return start_object_; }
83
88 constexpr const messages::GroupId& GetEndObject() const noexcept { return end_object_; }
89
90 private:
91 messages::GroupId start_group_;
92 messages::GroupId start_object_;
93 messages::GroupId end_group_;
94 messages::GroupId end_object_;
95
96 friend class Transport;
97 friend class Client;
98 friend class Server;
99 };
100
101} // namespace moq
MoQ Client.
Definition client.h:21
Definition fetch_track_handler.h:12
constexpr const messages::GroupId & GetEndObject() const noexcept
Get the id of the object one past the end of the group range.
Definition fetch_track_handler.h:88
static std::shared_ptr< FetchTrackHandler > Create(const FullTrackName &full_track_name, messages::ObjectPriority priority, messages::GroupOrder group_order, messages::GroupId start_group, messages::GroupId end_group, messages::GroupId start_object, messages::GroupId end_object)
Create shared Fetch track handler.
Definition fetch_track_handler.h:54
constexpr const messages::GroupId & GetStartObject() const noexcept
Get the starting object id of the Group range.
Definition fetch_track_handler.h:82
constexpr const messages::GroupId & GetEndGroup() const noexcept
Get the id of the group one past the end of the Fetch range.
Definition fetch_track_handler.h:76
FetchTrackHandler(const FullTrackName &full_track_name, messages::ObjectPriority priority, messages::GroupOrder group_order, messages::GroupId start_group, messages::GroupId end_group, messages::GroupId start_object, messages::GroupId end_object)
Fetch track handler constructor.
Definition fetch_track_handler.h:25
constexpr const messages::GroupId & GetStartGroup() const noexcept
Get the starting group id of the Fetch range.
Definition fetch_track_handler.h:70
MoQ Server.
Definition server.h:21
MOQ track handler for subscribed track.
Definition subscribe_track_handler.h:22
MOQ Implementation supporting both client and server modes.
Definition transport.h:34
Definition transport.h:26
Full track name struct.
Definition track_name.h:267