VBVX 0.1.0
Header-only C++23 library for safe, zero-copy parsing of packet buffers.
Loading...
Searching...
No Matches
vbvx::HeaderView< H > Class Template Reference

A lightweight view over a header inside a packet buffer. More...

#include <header_view.hxx>

Public Member Functions

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

Detailed Description

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.

Constructor & Destructor Documentation

◆ HeaderView() [1/3]

template<WireHeader H>
vbvx::HeaderView< H >::HeaderView ( )
constexprdefaultnoexcept

◆ HeaderView() [2/3]

template<WireHeader H>
vbvx::HeaderView< H >::HeaderView ( const header_t * p)
inlineexplicitconstexprnoexcept

◆ HeaderView() [3/3]

template<WireHeader H>
vbvx::HeaderView< H >::HeaderView ( const uint8_t * p)
inlineexplicitconstexprnoexcept

Member Function Documentation

◆ copy()

template<WireHeader H>
auto vbvx::HeaderView< H >::copy ( ) const -> header_t
inlineconstexprnoexcept

◆ get()

template<WireHeader H>
auto vbvx::HeaderView< H >::get ( ) const -> const header_t *
inlineconstexprnoexcept

◆ operator bool()

template<WireHeader H>
vbvx::HeaderView< H >::operator bool ( ) const
inlineexplicitconstexprnoexcept

◆ operator*()

template<WireHeader H>
auto vbvx::HeaderView< H >::operator* ( ) const -> const header_t &
inlineconstexprnoexcept

◆ operator->()

template<WireHeader H>
auto vbvx::HeaderView< H >::operator-> ( ) const -> const header_t *
inlineconstexprnoexcept

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