RESTinio
Loading...
Searching...
No Matches
ws_parser.hpp File Reference
#include <restinio/exception.hpp>
#include <restinio/websocket/message.hpp>
#include <restinio/utils/impl/bitops.hpp>
#include <cstdint>
#include <vector>
#include <list>
#include <stdexcept>

Go to the source code of this file.

Classes

class  restinio::websocket::basic::impl::message_details_t
 Websocket message class with more detailed protocol information. More...
struct  restinio::websocket::basic::impl::expected_data_t
 Data with expected size. More...
class  restinio::websocket::basic::impl::ws_parser_t
 Websocket parser. More...

Namespaces

namespace  restinio
namespace  restinio::websocket
namespace  restinio::websocket::basic
namespace  restinio::websocket::basic::impl

Typedefs

using restinio::websocket::basic::byte_t = unsigned char
 Alias for byte.
using restinio::websocket::basic::raw_data_t = std::string
 Bytes buffer.

Functions

template<typename T>
void restinio::websocket::basic::impl::read_number_from_big_endian_bytes (T &number, const raw_data_t &data)
 Read number from buffer with network bytes order.
template<int Bytes>
void restinio::websocket::basic::impl::write_number_to_big_endian_bytes (std::uint64_t &number, raw_data_t &data)
 Save number to buffer with network bytes order.
void restinio::websocket::basic::impl::mask_unmask_payload (std::uint32_t masking_key, raw_data_t &payload)
 Do msak/unmask operation with buffer.
raw_data_t restinio::websocket::basic::impl::write_message_details (const message_details_t &message)
 Serialize websocket message details into bytes buffer.
raw_data_t restinio::websocket::basic::impl::write_message_details (final_frame_flag_t final_flag, opcode_t opcode, size_t payload_len)
 Serialize websocket message details into bytes buffer.
raw_data_t restinio::websocket::basic::impl::write_message_details (final_frame_flag_t final_flag, opcode_t opcode, size_t payload_len, std::uint32_t masking_key)
 Serialize websocket message details into bytes buffer.

Variables

constexpr size_t restinio::websocket::basic::impl::websocket_first_two_bytes_size = 2
 Websocket parser constants.
constexpr size_t restinio::websocket::basic::impl::websocket_max_payload_size_without_ext = 125
constexpr size_t restinio::websocket::basic::impl::websocket_short_ext_payload_length = 2
constexpr size_t restinio::websocket::basic::impl::websocket_long_ext_payload_length = 8
constexpr size_t restinio::websocket::basic::impl::websocket_short_ext_len_code = 126
constexpr size_t restinio::websocket::basic::impl::websocket_long_ext_len_code = 127
constexpr size_t restinio::websocket::basic::impl::websocket_masking_key_size = 4
constexpr byte_t restinio::websocket::basic::impl::bit_flag_7 = 0x80
constexpr byte_t restinio::websocket::basic::impl::bit_flag_6 = 0x40
constexpr byte_t restinio::websocket::basic::impl::bit_flag_5 = 0x20
constexpr byte_t restinio::websocket::basic::impl::bit_flag_4 = 0x10
constexpr byte_t restinio::websocket::basic::impl::opcode_mask = 0x0F
constexpr byte_t restinio::websocket::basic::impl::payload_len_mask = 0x7F