|
Network System 0.1.1
High-performance modular networking library for scalable client-server applications
|
Builder for QUIC frames (RFC 9000 Section 12) More...
#include <frame.h>

Static Public Member Functions | |
| static auto | build (const frame &f) -> std::vector< uint8_t > |
| Build any frame from variant. | |
| static auto | build_padding (size_t count=1) -> std::vector< uint8_t > |
| Build PADDING frame. | |
| static auto | build_ping () -> std::vector< uint8_t > |
| Build PING frame. | |
| static auto | build_ack (const ack_frame &f) -> std::vector< uint8_t > |
| Build ACK frame. | |
| static auto | build_reset_stream (const reset_stream_frame &f) -> std::vector< uint8_t > |
| Build RESET_STREAM frame. | |
| static auto | build_stop_sending (const stop_sending_frame &f) -> std::vector< uint8_t > |
| Build STOP_SENDING frame. | |
| static auto | build_crypto (const crypto_frame &f) -> std::vector< uint8_t > |
| Build CRYPTO frame. | |
| static auto | build_new_token (const new_token_frame &f) -> std::vector< uint8_t > |
| Build NEW_TOKEN frame. | |
| static auto | build_stream (const stream_frame &f, bool include_length=true) -> std::vector< uint8_t > |
| Build STREAM frame. | |
| static auto | build_max_data (const max_data_frame &f) -> std::vector< uint8_t > |
| Build MAX_DATA frame. | |
| static auto | build_max_stream_data (const max_stream_data_frame &f) -> std::vector< uint8_t > |
| Build MAX_STREAM_DATA frame. | |
| static auto | build_max_streams (const max_streams_frame &f) -> std::vector< uint8_t > |
| Build MAX_STREAMS frame. | |
| static auto | build_data_blocked (const data_blocked_frame &f) -> std::vector< uint8_t > |
| Build DATA_BLOCKED frame. | |
| static auto | build_stream_data_blocked (const stream_data_blocked_frame &f) -> std::vector< uint8_t > |
| Build STREAM_DATA_BLOCKED frame. | |
| static auto | build_streams_blocked (const streams_blocked_frame &f) -> std::vector< uint8_t > |
| Build STREAMS_BLOCKED frame. | |
| static auto | build_new_connection_id (const new_connection_id_frame &f) -> std::vector< uint8_t > |
| Build NEW_CONNECTION_ID frame. | |
| static auto | build_retire_connection_id (const retire_connection_id_frame &f) -> std::vector< uint8_t > |
| Build RETIRE_CONNECTION_ID frame. | |
| static auto | build_path_challenge (const path_challenge_frame &f) -> std::vector< uint8_t > |
| Build PATH_CHALLENGE frame. | |
| static auto | build_path_response (const path_response_frame &f) -> std::vector< uint8_t > |
| Build PATH_RESPONSE frame. | |
| static auto | build_connection_close (const connection_close_frame &f) -> std::vector< uint8_t > |
| Build CONNECTION_CLOSE frame. | |
| static auto | build_handshake_done () -> std::vector< uint8_t > |
| Build HANDSHAKE_DONE frame. | |
Static Private Member Functions | |
| static void | append_varint (std::vector< uint8_t > &buffer, uint64_t value) |
| static void | append_bytes (std::vector< uint8_t > &buffer, std::span< const uint8_t > data) |
Builder for QUIC frames (RFC 9000 Section 12)
Serializes QUIC frame structures into raw bytes.
|
staticprivate |
|
staticprivate |
Definition at line 879 of file frame.cpp.
References kcenon::network::protocols::quic::varint::encode().

|
staticnodiscard |
Build any frame from variant.
| f | Frame to serialize |
Definition at line 891 of file frame.cpp.
Referenced by kcenon::network::protocols::quic::connection::build_packet(), and kcenon::network::internal::quic_socket::send_packet().

|
staticnodiscard |
Build ACK frame.
| f | ACK frame structure |
Definition at line 950 of file frame.cpp.
References kcenon::network::protocols::quic::ack, and kcenon::network::protocols::quic::ack_ecn.
Referenced by kcenon::network::protocols::quic::connection::build_packet().

|
staticnodiscard |
Build CONNECTION_CLOSE frame.
| f | CONNECTION_CLOSE frame structure |
Definition at line 1173 of file frame.cpp.
References kcenon::network::protocols::quic::connection_close, and kcenon::network::protocols::quic::connection_close_app.
|
staticnodiscard |
Build CRYPTO frame.
| f | CRYPTO frame structure |
Definition at line 1015 of file frame.cpp.
References kcenon::network::protocols::quic::crypto.
Referenced by kcenon::network::protocols::quic::connection::build_packet().

|
staticnodiscard |
Build DATA_BLOCKED frame.
| f | DATA_BLOCKED frame structure |
Definition at line 1095 of file frame.cpp.
References kcenon::network::protocols::quic::data_blocked.
|
staticnodiscard |
Build HANDSHAKE_DONE frame.
Definition at line 1198 of file frame.cpp.
References kcenon::network::protocols::quic::handshake_done.
|
staticnodiscard |
Build MAX_DATA frame.
| f | MAX_DATA frame structure |
Definition at line 1065 of file frame.cpp.
References kcenon::network::protocols::quic::max_data.
|
staticnodiscard |
Build MAX_STREAM_DATA frame.
| f | MAX_STREAM_DATA frame structure |
Definition at line 1074 of file frame.cpp.
References kcenon::network::protocols::quic::max_stream_data.
|
staticnodiscard |
Build MAX_STREAMS frame.
| f | MAX_STREAMS frame structure |
Definition at line 1084 of file frame.cpp.
References kcenon::network::protocols::quic::max_streams_bidi, and kcenon::network::protocols::quic::max_streams_uni.
|
staticnodiscard |
Build NEW_CONNECTION_ID frame.
| f | NEW_CONNECTION_ID frame structure |
Definition at line 1125 of file frame.cpp.
References kcenon::network::protocols::quic::new_connection_id.
|
staticnodiscard |
Build NEW_TOKEN frame.
| f | NEW_TOKEN frame structure |
Definition at line 1025 of file frame.cpp.
References kcenon::network::protocols::quic::new_token.
|
staticnodiscard |
Build PADDING frame.
| count | Number of padding bytes (default 1) |
Definition at line 940 of file frame.cpp.
Referenced by kcenon::network::protocols::quic::connection::build_packet().

|
staticnodiscard |
Build PATH_CHALLENGE frame.
| f | PATH_CHALLENGE frame structure |
Definition at line 1155 of file frame.cpp.
References kcenon::network::protocols::quic::path_challenge.
|
staticnodiscard |
Build PATH_RESPONSE frame.
| f | PATH_RESPONSE frame structure |
Definition at line 1164 of file frame.cpp.
References kcenon::network::protocols::quic::path_response.
|
staticnodiscard |
|
staticnodiscard |
Build RESET_STREAM frame.
| f | RESET_STREAM frame structure |
Definition at line 994 of file frame.cpp.
References kcenon::network::protocols::quic::reset_stream.
|
staticnodiscard |
Build RETIRE_CONNECTION_ID frame.
| f | RETIRE_CONNECTION_ID frame structure |
Definition at line 1146 of file frame.cpp.
References kcenon::network::protocols::quic::retire_connection_id.
|
staticnodiscard |
Build STOP_SENDING frame.
| f | STOP_SENDING frame structure |
Definition at line 1005 of file frame.cpp.
References kcenon::network::protocols::quic::stop_sending.
|
staticnodiscard |
Build STREAM frame.
| f | STREAM frame structure |
| include_length | Whether to include explicit length field |
Definition at line 1035 of file frame.cpp.
References kcenon::network::protocols::quic::make_stream_type().
Referenced by kcenon::network::protocols::quic::connection::build_packet().


|
staticnodiscard |
Build STREAM_DATA_BLOCKED frame.
| f | STREAM_DATA_BLOCKED frame structure |
Definition at line 1104 of file frame.cpp.
References kcenon::network::protocols::quic::stream_data_blocked.
|
staticnodiscard |
Build STREAMS_BLOCKED frame.
| f | STREAMS_BLOCKED frame structure |
Definition at line 1114 of file frame.cpp.
References kcenon::network::protocols::quic::streams_blocked_bidi, and kcenon::network::protocols::quic::streams_blocked_uni.