A lightweight view over a header inside a packet buffer.
More...
#include <header_view.hxx>
|
| constexpr | HeaderView () noexcept=default |
| constexpr | HeaderView (const header_t *p) noexcept |
| constexpr | HeaderView (const uint8_t *p) noexcept |
| constexpr | operator bool () const noexcept |
| constexpr auto | get () const noexcept -> const header_t * |
| constexpr auto | operator-> () const noexcept -> const header_t * |
| constexpr auto | operator* () const noexcept -> const header_t & |
| constexpr auto | copy () const noexcept -> header_t |
template<WireHeader H>
class vbvx::HeaderView< H >
A lightweight view over a header inside a packet buffer.
- Zero-copy: wraps a pointer into the packet data.
- Bounds are checked by BufferView before construction.
- Convenient: acts like a pointer and can be copied out when needed.
- Warning
- The byte-pointer constructor creates a const H* over arbitrary packet bytes. This is a deliberate GCC/Clang-oriented zero-copy extension used with [[gnu::packed]] wire structs; it relies on those compilers' practical handling of packed object views over byte storage. It is not a fully portable ISO C++ object-lifetime/effective-type pattern. Use copy() when a portable local value is needed.
◆ HeaderView() [1/3]
◆ HeaderView() [2/3]
template<WireHeader H>
|
|
inlineexplicitconstexprnoexcept |
◆ HeaderView() [3/3]
template<WireHeader H>
|
|
inlineexplicitconstexprnoexcept |
◆ copy()
◆ get()
◆ operator bool()
template<WireHeader H>
|
|
inlineexplicitconstexprnoexcept |
◆ operator*()
◆ operator->()
The documentation for this class was generated from the following file: