LibQuicR
Loading...
Searching...
No Matches
object.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 <cstdint>
7#include <map>
8#include <optional>
9#include <quicr/detail/base_track_handler.h>
10
11namespace quicr {
12 using Extensions = std::map<uint64_t, std::vector<uint8_t>>;
13
17 enum struct ObjectStatus : uint8_t
18 {
24 };
25
32 {
33 uint64_t group_id;
34 uint64_t object_id;
35 uint64_t subgroup_id{ 0 };
36 uint64_t payload_length;
38 std::optional<uint8_t> priority;
39 std::optional<uint16_t> ttl;
40 std::optional<TrackMode> track_mode;
41 std::optional<Extensions> extensions;
42 std::optional<Extensions> immutable_extensions;
43 };
44
45}
46// namespace moq
Definition transport.h:28
std::map< uint64_t, std::vector< uint8_t > > Extensions
Definition object.h:12
ObjectStatus
Status of object as reported by the publisher.
Definition object.h:18
@ kEndOfSubGroup
Definition object.h:23
@ kDoesNotExist
Definition object.h:20
@ kEndOfGroup
Definition object.h:21
@ kEndOfTrack
Definition object.h:22
@ kAvailable
Definition object.h:19
Object headers struct.
Definition object.h:32
uint64_t subgroup_id
Subgroup ID - Starts at 0, monotonically increases by 1.
Definition object.h:35
ObjectStatus status
Status of the object at the publisher.
Definition object.h:37
uint64_t object_id
Object ID - Application defined order of generation.
Definition object.h:34
std::optional< Extensions > extensions
Definition object.h:41
uint64_t group_id
Object group ID - Application defined order of generation.
Definition object.h:33
std::optional< Extensions > immutable_extensions
Definition object.h:42
std::optional< uint8_t > priority
Priority of the object, lower value is better.
Definition object.h:38
std::optional< uint16_t > ttl
Object time to live in milliseconds.
Definition object.h:39
uint64_t payload_length
Length of payload of the object data.
Definition object.h:36
std::optional< TrackMode > track_mode
Track Mode of how the object was received or mode to use when sending.
Definition object.h:40