LibQuicR
parameters.h File Reference
#include "quicr/messages/ctrl_message_types.h"
#include <algorithm>
#include <initializer_list>
#include <vector>

Go to the source code of this file.

Classes

class  quicr::messages::ParameterList< Type >
 

Namespaces

 quicr
 
 quicr::messages
 

Typedefs

using quicr::messages::Parameter = KeyValuePair< ParameterType >
 A message parameter key/value pair. More...
 
using quicr::messages::SetupParameter = KeyValuePair< SetupOptionType >
 A setup-option key/value pair. More...
 
using quicr::messages::Parameters = quicr::messages::ParameterList< quicr::messages::ParameterType >
 Standard message-parameter list. More...
 

Enumerations

enum class  quicr::messages::ParameterType : uint64_t {
  quicr::messages::kDeliveryTimeout = 0x02 , quicr::messages::kAuthorizationToken = 0x03 , quicr::messages::kRendezvousTimeout = 0x04 , quicr::messages::kSubgroupDeliveryTimeout = 0x06 ,
  quicr::messages::kFillTimeout = 0x0A , quicr::messages::kExpires = 0x08 , quicr::messages::kLargestObject = 0x09 , quicr::messages::kForward = 0x10 ,
  quicr::messages::kSubscriberPriority = 0x20 , quicr::messages::kSubscriptionFilter = 0x21 , quicr::messages::kGroupOrder = 0x22 , quicr::messages::kNewGroupRequest = 0x32 ,
  quicr::messages::kTrackNamespacePrefix = 0x34 , quicr::messages::kTrackFilter = 0x29 , quicr::messages::kInvalid = 0xFF
}
 Message-parameter type codes used as delta-encoded map keys on the wire. More...
 
enum class  quicr::messages::ParameterEncoding { quicr::messages::kByte , quicr::messages::kVarint , quicr::messages::kLocation , quicr::messages::kBytes }
 Physical value encoding selected by a parameter type. More...
 

Functions

constexpr ParameterType quicr::messages::ToParameterFilterType (FilterType type)
 
constexpr FilterType quicr::messages::ToFilterType (ParameterType type)
 
ParameterType quicr::messages::GetFilterParameterType (const Filter &filter)
 
Parameter quicr::messages::SerializeFilter (FilterType filter_type, const Filter &filter)
 
ParameterEncoding quicr::messages::GetParameterEncoding (ParameterType type)
 
template<typename Type = ParameterType>
BytesSpan quicr::messages::operator>> (BytesSpan buffer, ParameterList< Type > &msg)
 
template<typename Type = ParameterType>
Bytes & quicr::messages::operator<< (Bytes &buffer, const ParameterList< Type > &msg)
 
void quicr::messages::ValidateParameters (const Parameters &params, std::initializer_list< ParameterType > allowed)
 
std::vector< Token > quicr::messages::CollectAuthTokens (const Parameters &params)
 
bool quicr::messages::ResolveForward (const Parameters &params, bool default_value)
 
std::optional< GroupOrder > quicr::messages::ResolveGroupOrder (const Parameters &params)
 
std::optional< std::uint64_t > quicr::messages::ResolveExpires (const Parameters &params)
 
bool quicr::messages::ContainsAnyFilter (const Parameters &params)
 
Filter quicr::messages::ResolveFilter (const Parameters &params)
 

Variables

template<typename T >
concept quicr::messages::ParameterValueType
 
constexpr FilterType quicr::messages::kFilterTypes []
 Filter kinds searched by ContainsAnyFilter() and ResolveFilter(), in precedence order. More...