Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
frame.h File Reference
#include "kcenon/network/detail/utils/result_types.h"
#include <array>
#include <cstdint>
#include <span>
#include <vector>
#include <memory>
#include <string>
Include dependency graph for frame.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  kcenon::network::protocols::http2::frame_header
 HTTP/2 frame header (9 bytes) More...
 
class  kcenon::network::protocols::http2::frame
 Base class for HTTP/2 frames. More...
 
class  kcenon::network::protocols::http2::data_frame
 DATA frame (RFC 7540 Section 6.1) More...
 
class  kcenon::network::protocols::http2::headers_frame
 HEADERS frame (RFC 7540 Section 6.2) More...
 
struct  kcenon::network::protocols::http2::setting_parameter
 SETTINGS frame parameter. More...
 
class  kcenon::network::protocols::http2::settings_frame
 SETTINGS frame (RFC 7540 Section 6.5) More...
 
class  kcenon::network::protocols::http2::rst_stream_frame
 RST_STREAM frame (RFC 7540 Section 6.4) More...
 
class  kcenon::network::protocols::http2::ping_frame
 PING frame (RFC 7540 Section 6.7) More...
 
class  kcenon::network::protocols::http2::goaway_frame
 GOAWAY frame (RFC 7540 Section 6.8) More...
 
class  kcenon::network::protocols::http2::window_update_frame
 WINDOW_UPDATE frame (RFC 7540 Section 6.9) More...
 

Namespaces

namespace  kcenon
 
namespace  kcenon::network
 Main namespace for all Network System components.
 
namespace  kcenon::network::protocols
 
namespace  kcenon::network::protocols::http2
 
namespace  kcenon::network::protocols::http2::frame_flags
 

Enumerations

enum class  kcenon::network::protocols::http2::frame_type : uint8_t {
  kcenon::network::protocols::http2::data = 0x0 , kcenon::network::protocols::http2::headers = 0x1 , kcenon::network::protocols::http2::priority = 0x2 , kcenon::network::protocols::http2::rst_stream = 0x3 ,
  kcenon::network::protocols::http2::settings = 0x4 , kcenon::network::protocols::http2::push_promise = 0x5 , kcenon::network::protocols::http2::ping = 0x6 , kcenon::network::protocols::http2::goaway = 0x7 ,
  kcenon::network::protocols::http2::window_update = 0x8 , kcenon::network::protocols::http2::continuation = 0x9
}
 HTTP/2 frame types (RFC 7540 Section 6) More...
 
enum class  kcenon::network::protocols::http2::setting_identifier : uint16_t {
  kcenon::network::protocols::http2::header_table_size = 0x1 , kcenon::network::protocols::http2::enable_push = 0x2 , kcenon::network::protocols::http2::max_concurrent_streams = 0x3 , kcenon::network::protocols::http2::initial_window_size = 0x4 ,
  kcenon::network::protocols::http2::max_frame_size = 0x5 , kcenon::network::protocols::http2::max_header_list_size = 0x6
}
 SETTINGS frame parameter identifiers (RFC 7540 Section 6.5.2) More...
 
enum class  kcenon::network::protocols::http2::error_code : uint32_t {
  kcenon::network::protocols::http2::no_error = 0x0 , kcenon::network::protocols::http2::protocol_error = 0x1 , kcenon::network::protocols::http2::internal_error = 0x2 , kcenon::network::protocols::http2::flow_control_error = 0x3 ,
  kcenon::network::protocols::http2::settings_timeout = 0x4 , kcenon::network::protocols::http2::stream_closed = 0x5 , kcenon::network::protocols::http2::frame_size_error = 0x6 , kcenon::network::protocols::http2::refused_stream = 0x7 ,
  kcenon::network::protocols::http2::cancel = 0x8 , kcenon::network::protocols::http2::compression_error = 0x9 , kcenon::network::protocols::http2::connect_error = 0xa , kcenon::network::protocols::http2::enhance_your_calm = 0xb ,
  kcenon::network::protocols::http2::inadequate_security = 0xc , kcenon::network::protocols::http2::http_1_1_required = 0xd
}
 HTTP/2 error codes (RFC 7540 Section 7) More...
 

Variables

constexpr uint8_t kcenon::network::protocols::http2::frame_flags::none = 0x0
 
constexpr uint8_t kcenon::network::protocols::http2::frame_flags::end_stream = 0x1
 
constexpr uint8_t kcenon::network::protocols::http2::frame_flags::ack = 0x1
 
constexpr uint8_t kcenon::network::protocols::http2::frame_flags::end_headers = 0x4
 
constexpr uint8_t kcenon::network::protocols::http2::frame_flags::padded = 0x8
 
constexpr uint8_t kcenon::network::protocols::http2::frame_flags::priority = 0x20