|
Network System 0.1.1
High-performance modular networking library for scalable client-server applications
|
Base class for HTTP/2 frames. More...
#include <frame.h>


Public Member Functions | |
| frame ()=default | |
| Default constructor. | |
| frame (const frame_header &hdr, std::vector< uint8_t > payload) | |
| Construct frame with header and payload. | |
| auto | serialize () const -> std::vector< uint8_t > |
| Serialize frame to bytes. | |
| auto | header () const -> const frame_header & |
| Get frame header. | |
| auto | payload () const -> std::span< const uint8_t > |
| Get frame payload. | |
| virtual | ~frame ()=default |
| Virtual destructor. | |
Static Public Member Functions | |
| static auto | parse (std::span< const uint8_t > data) -> Result< std::unique_ptr< frame > > |
| Parse frame from raw bytes. | |
Protected Attributes | |
| frame_header | header_ |
| Frame header. | |
| std::vector< uint8_t > | payload_ |
| Frame payload. | |
Base class for HTTP/2 frames.
Represents a generic HTTP/2 frame with header and payload. Specific frame types inherit from this base class.
|
default |
Default constructor.
| kcenon::network::protocols::http2::frame::frame | ( | const frame_header & | hdr, |
| std::vector< uint8_t > | payload ) |
Construct frame with header and payload.
| hdr | Frame header |
| payload | Frame payload data |
Definition at line 89 of file frame.cpp.
|
virtualdefault |
Virtual destructor.
| auto kcenon::network::protocols::http2::frame::header | ( | ) | const -> const frame_header& |
|
static |
Parse frame from raw bytes.
| data | Raw byte data (header + payload) |
Definition at line 94 of file frame.cpp.
References kcenon::network::protocols::http2::data, kcenon::network::protocols::http2::goaway, kcenon::network::protocols::http2::headers, kcenon::network::protocols::http2::data_frame::parse(), kcenon::network::protocols::http2::frame_header::parse(), kcenon::network::protocols::http2::goaway_frame::parse(), kcenon::network::protocols::http2::headers_frame::parse(), kcenon::network::protocols::http2::ping_frame::parse(), kcenon::network::protocols::http2::rst_stream_frame::parse(), kcenon::network::protocols::http2::settings_frame::parse(), kcenon::network::protocols::http2::window_update_frame::parse(), kcenon::network::protocols::http2::ping, kcenon::network::protocols::http2::rst_stream, kcenon::network::protocols::http2::settings, and kcenon::network::protocols::http2::window_update.
Referenced by kcenon::network::protocols::http2::http2_client::read_frame(), kcenon::network::protocols::http2::http2_server_connection::read_frame_header(), and kcenon::network::protocols::http2::http2_server_connection::read_frame_payload().


| auto kcenon::network::protocols::http2::frame::payload | ( | ) | const -> std::span<const uint8_t> |
| auto kcenon::network::protocols::http2::frame::serialize | ( | ) | const -> std::vector<uint8_t> |
Serialize frame to bytes.
Definition at line 173 of file frame.cpp.
References header_, payload_, and kcenon::network::protocols::http2::frame_header::serialize().

|
protected |
Frame header.
Definition at line 127 of file frame.h.
Referenced by kcenon::network::protocols::http2::data_frame::data_frame(), kcenon::network::protocols::http2::goaway_frame::goaway_frame(), header(), kcenon::network::protocols::http2::headers_frame::headers_frame(), kcenon::network::protocols::http2::ping_frame::is_ack(), kcenon::network::protocols::http2::settings_frame::is_ack(), kcenon::network::protocols::http2::headers_frame::is_end_headers(), kcenon::network::protocols::http2::data_frame::is_end_stream(), kcenon::network::protocols::http2::headers_frame::is_end_stream(), kcenon::network::protocols::http2::data_frame::is_padded(), kcenon::network::protocols::http2::ping_frame::ping_frame(), kcenon::network::protocols::http2::rst_stream_frame::rst_stream_frame(), serialize(), kcenon::network::protocols::http2::settings_frame::settings_frame(), and kcenon::network::protocols::http2::window_update_frame::window_update_frame().
|
protected |
Frame payload.
Definition at line 128 of file frame.h.
Referenced by kcenon::network::protocols::http2::data_frame::data_frame(), kcenon::network::protocols::http2::goaway_frame::goaway_frame(), kcenon::network::protocols::http2::headers_frame::headers_frame(), payload(), kcenon::network::protocols::http2::ping_frame::ping_frame(), kcenon::network::protocols::http2::rst_stream_frame::rst_stream_frame(), serialize(), kcenon::network::protocols::http2::settings_frame::settings_frame(), and kcenon::network::protocols::http2::window_update_frame::window_update_frame().