LibQuicR
quicr::messages::FetchSerializationProperties Struct Reference

Fetch data-plane serialization flag. More...

#include <message_serialisation.h>

Public Types

enum class  EndOfRange { kNonExistent , kUnknown }
 Special FETCH range-termination condition. More...
 
enum class  SubgroupIdMode : std::uint8_t { kZero = 0x00 , kPrior = 0x01 , kNext = 0x02 , kExplicit = 0x03 }
 Encoding used to reconstruct a normal stream object's subgroup ID. More...
 

Public Member Functions

 FetchSerializationProperties (std::uint64_t value)
 
 FetchSerializationProperties (SubgroupIdMode subgroup_id_mode, bool object_id_delta_present, bool group_id_delta_present, bool priority_present, bool properties_present, bool datagram) noexcept
 
std::uint64_t GetType () const noexcept
 

Public Attributes

std::optional< EndOfRange > end_of_range
 End-of-range marker, or absent for a normal object. More...
 
std::optional< SubgroupIdMode > subgroup_id_mode
 Subgroup mode for stream objects; absent for datagrams and end markers. More...
 
bool object_id_delta_present
 Whether an object-ID delta/absolute field follows. More...
 
bool group_id_delta_present
 Whether a group-ID delta/absolute field follows. More...
 
bool priority_present
 Whether publisher priority follows. More...
 
bool properties_present
 Whether an extension block follows. More...
 
bool datagram
 Whether the resolved object used datagram forwarding. More...
 

Static Public Attributes

static constexpr std::uint8_t kSubgroupMask = 0x03
 Subgroup mode mask. More...
 
static constexpr std::uint8_t kObjectIdDeltaBit = 0x04
 Object-ID-field bit. More...
 
static constexpr std::uint8_t kGroupIdDeltaBit = 0x08
 Group-ID-field bit. More...
 
static constexpr std::uint8_t kPriorityBit = 0x10
 Publisher-priority-field bit. More...
 
static constexpr std::uint8_t kPropertiesBit = 0x20
 Extensions-field bit. More...
 
static constexpr std::uint8_t kDatagramBit = 0x40
 Datagram-forwarding bit. More...
 
static constexpr std::uint64_t kEndOfNonExistentRange = 0x8C
 End-of-nonexistent-range marker value. More...
 
static constexpr std::uint64_t kEndOfUnknownRange = 0x10C
 End-of-unknown-range marker value. More...
 

Detailed Description

Fetch data-plane serialization flag.

Member Enumeration Documentation

◆ EndOfRange

Special FETCH range-termination condition.

Enumerator
kNonExistent 

End location is known not to exist.

kUnknown 

Existence of the end location is unknown.

◆ SubgroupIdMode

Encoding used to reconstruct a normal stream object's subgroup ID.

Enumerator
kZero 

Subgroup ID is zero.

kPrior 

Reuse prior subgroup ID.

kNext 

Prior subgroup ID plus one.

kExplicit 

Read an explicit subgroup ID.

Constructor & Destructor Documentation

◆ FetchSerializationProperties() [1/2]

quicr::messages::FetchSerializationProperties::FetchSerializationProperties ( std::uint64_t  value)
explicit

Decodes serialization flags.

Parameters
valueWire-format serialization flags.
Exceptions
ProtocolViolationExceptionfor undefined values at or above 128.

◆ FetchSerializationProperties() [2/2]

quicr::messages::FetchSerializationProperties::FetchSerializationProperties ( SubgroupIdMode  subgroup_id_mode,
bool  object_id_delta_present,
bool  group_id_delta_present,
bool  priority_present,
bool  properties_present,
bool  datagram 
)
noexcept

Constructs normal-object flags from their components.

Parameters
subgroup_id_modeSubgroup-ID encoding mode; ignored for datagrams.
object_id_delta_presentWhether an object-ID field is present.
group_id_delta_presentWhether a group-ID field is present.
priority_presentWhether publisher priority is present.
properties_presentWhether an extension block is present.
datagramWhether the resolved object uses datagram forwarding.

Member Function Documentation

◆ GetType()

std::uint64_t quicr::messages::FetchSerializationProperties::GetType ( ) const
noexcept
Returns
Encoded flags or end-of-range marker.

Member Data Documentation

◆ datagram

bool quicr::messages::FetchSerializationProperties::datagram

Whether the resolved object used datagram forwarding.

◆ end_of_range

std::optional<EndOfRange> quicr::messages::FetchSerializationProperties::end_of_range

End-of-range marker, or absent for a normal object.

◆ group_id_delta_present

bool quicr::messages::FetchSerializationProperties::group_id_delta_present

Whether a group-ID delta/absolute field follows.

◆ kDatagramBit

constexpr std::uint8_t quicr::messages::FetchSerializationProperties::kDatagramBit = 0x40
staticconstexpr

Datagram-forwarding bit.

◆ kEndOfNonExistentRange

constexpr std::uint64_t quicr::messages::FetchSerializationProperties::kEndOfNonExistentRange = 0x8C
staticconstexpr

End-of-nonexistent-range marker value.

◆ kEndOfUnknownRange

constexpr std::uint64_t quicr::messages::FetchSerializationProperties::kEndOfUnknownRange = 0x10C
staticconstexpr

End-of-unknown-range marker value.

◆ kGroupIdDeltaBit

constexpr std::uint8_t quicr::messages::FetchSerializationProperties::kGroupIdDeltaBit = 0x08
staticconstexpr

Group-ID-field bit.

◆ kObjectIdDeltaBit

constexpr std::uint8_t quicr::messages::FetchSerializationProperties::kObjectIdDeltaBit = 0x04
staticconstexpr

Object-ID-field bit.

◆ kPriorityBit

constexpr std::uint8_t quicr::messages::FetchSerializationProperties::kPriorityBit = 0x10
staticconstexpr

Publisher-priority-field bit.

◆ kPropertiesBit

constexpr std::uint8_t quicr::messages::FetchSerializationProperties::kPropertiesBit = 0x20
staticconstexpr

Extensions-field bit.

◆ kSubgroupMask

constexpr std::uint8_t quicr::messages::FetchSerializationProperties::kSubgroupMask = 0x03
staticconstexpr

Subgroup mode mask.

◆ object_id_delta_present

bool quicr::messages::FetchSerializationProperties::object_id_delta_present

Whether an object-ID delta/absolute field follows.

◆ priority_present

bool quicr::messages::FetchSerializationProperties::priority_present

Whether publisher priority follows.

◆ properties_present

bool quicr::messages::FetchSerializationProperties::properties_present

Whether an extension block follows.

◆ subgroup_id_mode

std::optional<SubgroupIdMode> quicr::messages::FetchSerializationProperties::subgroup_id_mode

Subgroup mode for stream objects; absent for datagrams and end markers.


The documentation for this struct was generated from the following file: