|
LibQuicR
|
An N-tuple representation of a MOQ namespace. More...
#include <track_name.h>
Public Member Functions | |
| TrackNamespace ()=default | |
| Construct an empty namespace. More... | |
| template<typename... B, std::enable_if_t< std::is_same_v< std::common_type_t< B... >, std::vector< uint8_t >>, bool > = true> | |
| TrackNamespace (B &&... entries) | |
| Constructs a namespace from a variadic number of Bytes parameters. More... | |
| template<typename... S, std::enable_if_t< std::is_same_v< std::common_type_t< S... >, std::string >, bool > = true> | |
| TrackNamespace (S &&... entries) | |
| Constructs a namespace from a variadic number of string parameters. More... | |
| TrackNamespace (std::span< const std::span< const uint8_t >> entries) | |
| Construct a namespace by copying byte-span entries. More... | |
| TrackNamespace (const std::vector< std::vector< uint8_t >> &entries) | |
| Construct a namespace by copying byte-vector entries. More... | |
| TrackNamespace (const std::vector< std::string > &entries) | |
| Construct a namespace by copying string entries as bytes. More... | |
| TrackNamespace (const TrackNamespace &other) | |
| Copy a namespace and rebind its entry views to the new object's storage. More... | |
| TrackNamespace (TrackNamespace &&other) | |
| Move a namespace and rebind its entry views to the moved storage. More... | |
| TrackNamespace & | operator= (const TrackNamespace &other) |
| Copy-assign a namespace and rebind its entry views. More... | |
| TrackNamespace & | operator= (TrackNamespace &&other) |
| Move-assign a namespace and rebind its entry views. More... | |
| const std::vector< std::span< const uint8_t > > & | GetEntries () const noexcept |
| Access the namespace tuple entries. More... | |
| const auto & | GetHashes () const noexcept |
| Return the per-entry hashes in tuple order. More... | |
| auto | Str () const noexcept |
| Render entries as slash-separated text. More... | |
| TrackNamespace | GetPrefix (std::size_t length) const |
Copy the first length tuple entries. More... | |
| TrackNamespace | GetSuffix (std::size_t length) const |
Copy the last length tuple entries. More... | |
| auto | begin () noexcept |
| Return an iterator to the first byte in the flattened namespace. More... | |
| auto | end () noexcept |
| Return an iterator past the last byte in the flattened namespace. More... | |
| auto | begin () const noexcept |
| Return a const iterator to the first byte in the flattened namespace. More... | |
| auto | end () const noexcept |
| Return a const iterator past the last byte in the flattened namespace. More... | |
| auto | data () const noexcept |
| Return the flattened namespace byte storage. More... | |
| auto | size () const noexcept |
| Return the flattened namespace size in bytes. More... | |
| bool | empty () const noexcept |
| Return whether the flattened namespace contains no bytes. More... | |
| std::partial_ordering | IsPrefixOf (const TrackNamespace &rhs) const noexcept |
Compare this namespace with rhs by tuple-entry prefix. More... | |
| bool | HasSamePrefix (const TrackNamespace &other) const noexcept |
| Test whether all per-entry hashes in the shorter namespace match the longer namespace's prefix. More... | |
An N-tuple representation of a MOQ namespace.
|
default |
Construct an empty namespace.
|
inlineexplicit |
Constructs a namespace from a variadic number of Bytes parameters.
| B | Byte-vector argument types; their common type must be std::vector<uint8_t>. |
| entries | Namespace tuple entries in order. |
|
inlineexplicit |
Constructs a namespace from a variadic number of string parameters.
| S | String argument types; their common type must be std::string. |
| entries | Namespace tuple entries in order. |
|
inline |
Construct a namespace by copying byte-span entries.
| entries | Namespace tuple entries in order. |
| std::invalid_argument | if more than 32 entries are supplied. |
|
inline |
Construct a namespace by copying byte-vector entries.
| entries | Namespace tuple entries in order. |
| std::invalid_argument | if more than 32 entries are supplied. |
|
inline |
Construct a namespace by copying string entries as bytes.
| entries | Namespace tuple entries in order. |
| std::invalid_argument | if more than 32 entries are supplied. |
|
inline |
Copy a namespace and rebind its entry views to the new object's storage.
| other | Namespace to copy. |
|
inline |
Move a namespace and rebind its entry views to the moved storage.
| other | Namespace to move; its entry list is cleared. |
|
inlinenoexcept |
Return a const iterator to the first byte in the flattened namespace.
|
inlinenoexcept |
Return an iterator to the first byte in the flattened namespace.
|
inlinenoexcept |
Return the flattened namespace byte storage.
|
inlinenoexcept |
Return whether the flattened namespace contains no bytes.
true when there are no flattened bytes.
|
inlinenoexcept |
Return a const iterator past the last byte in the flattened namespace.
|
inlinenoexcept |
Return an iterator past the last byte in the flattened namespace.
|
inlinenoexcept |
Access the namespace tuple entries.
|
inlinenoexcept |
Return the per-entry hashes in tuple order.
|
inline |
Copy the first length tuple entries.
| length | Number of leading entries to include. |
length is zero. | std::invalid_argument | if length exceeds the entry count. |
|
inline |
Copy the last length tuple entries.
| length | Number of trailing entries to include. |
length is zero. | std::invalid_argument | if length exceeds the entry count. |
|
inlinenoexcept |
Test whether all per-entry hashes in the shorter namespace match the longer namespace's prefix.
| other | Namespace to compare. |
true when either namespace is a prefix of the other.
|
inlinenoexcept |
Compare this namespace with rhs by tuple-entry prefix.
| rhs | Namespace to compare. |
less when this is a proper prefix, greater when rhs is a proper prefix, equivalent when their per-entry hashes match, and unordered when neither is a prefix.
|
inline |
Copy-assign a namespace and rebind its entry views.
| other | Namespace to copy. |
|
inline |
Move-assign a namespace and rebind its entry views.
| other | Namespace to move. |
|
inlinenoexcept |
Return the flattened namespace size in bytes.
|
inlinenoexcept |
Render entries as slash-separated text.
/.