C++ Actor Framework 1.0.0
Loading...
Searching...
No Matches
caf::net::http::header Class Reference

Encapsulates meta data for HTTP header fields. More...

#include <header.hpp>

Inheritance diagram for caf::net::http::header:
caf::net::http::request_header caf::net::http::response_header

Public Member Functions

virtual ~header ()
 Virtual destructor.
 
 header ()=default
 Default constructor.
 
 header (header &&)=default
 Move constructor.
 
headeroperator= (header &&)=default
 Move assignment operator.
 
 header (const header &)
 Copy constructor.
 
headeroperator= (const header &)
 Copy assignment operator.
 
virtual void clear () noexcept
 Clears the header content and fields.
 
size_t num_fields () const noexcept
 Returns the number of fields in the request header.
 
std::pair< std::string_view, std::string_view > field_at (size_t index) const
 Returns the field at the specified index as a key-value pair.
 
bool has_field (std::string_view key) const noexcept
 Checks if the request header has a field with the specified key.
 
std::string_view field (std::string_view key) const noexcept
 Returns the value of the field with the specified key, or an empty view if the field is not found.
 
bool field_equals (ignore_case_t, std::string_view key, std::string_view val) const noexcept
 Checks whether the field key exists and equals val when using case-insensitive compare of the value.
 
bool field_equals (std::string_view key, std::string_view val) const noexcept
 Checks whether the field key exists and equals val when using case-sensitive compare of the value.
 
template<class T >
std::optional< T > field_as (std::string_view key) const noexcept
 Returns the value of the field with the specified key as the requested type T, or std::nullopt if the field is not found or cannot be converted.
 
template<class F >
void for_each_field (F &&f) const
 Executes the provided callable f for each field in the request header.
 
bool chunked_transfer_encoding () const noexcept
 Checks whether the client has defined Transfer-Encoding as chunked.
 
std::optional< size_t > content_length () const noexcept
 Convenience function for field_as<size_t>("Content-Length").
 
bool valid () const noexcept
 Checks if the request header is valid (non-empty).
 
expected< std::string_view > parse_fields (std::string_view data)
 Parses header fields from the provided data and returns the unprocessed input or error on invalid format.
 

Protected Types

using fields_map = std::vector<std::pair<std::string_view, std::string_view>>
 

Protected Member Functions

fields_map::const_iterator find_by_key_icase (std::string_view key) const noexcept
 
void reassign_fields (const header &other)
 Reassigns the shallow map from one address to another.
 

Static Protected Member Functions

static std::string_view remap (const char *base, std::string_view src, const char *new_base) noexcept
 

Protected Attributes

std::vector< char > raw_
 Stores the raw HTTP input.
 

Detailed Description

Encapsulates meta data for HTTP header fields.

This class represents a base class used for HTTP request and response representations, each providing additional message specific methods.

Member Function Documentation

◆ clear()

void caf::net::http::header::clear ( )
virtualnoexcept

Clears the header content and fields.

Reimplemented in caf::net::http::request_header, and caf::net::http::response_header.

◆ for_each_field()

template<class F >
void caf::net::http::header::for_each_field ( F && f) const

Executes the provided callable f for each field in the request header.

Parameters
fA function object taking two std::string_view parameters: key and value.

◆ parse_fields()

expected< std::string_view > caf::net::http::header::parse_fields ( std::string_view data)

Parses header fields from the provided data and returns the unprocessed input or error on invalid format.

Note
: Does not take ownership of the raw data.

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