Frame.hpp

This File On Github
Ask A Question

API: latest
module: oatpp-websocket
#include "oatpp-websocket/Frame.hpp"

Frame

WebSocket frame.

namespace oatpp { namespace websocket { 
  class Frame {}
}}

Fields

Type Name Summary
v_word8 OPCODE_CONTINUATION Continuation frame.
v_word8 OPCODE_TEXT Text frame.
v_word8 OPCODE_BINARY Binary frame.
v_word8 OPCODE_CLOSE Close frame.
v_word8 OPCODE_PING Ping frame.
v_word8 OPCODE_PONG Pong frame.

Methods

Return Type Name Summary
void packHeaderBits Serialize Frame::Header.
void unpackHeaderBits Deserialize Frame::Header.

Frame::OPCODE_CONTINUATION

Continuation frame.

static constexpr v_word8 OPCODE_CONTINUATION = 0x0

Frame::OPCODE_TEXT

Text frame.

static constexpr v_word8 OPCODE_TEXT = 0x1

Frame::OPCODE_BINARY

Binary frame.

static constexpr v_word8 OPCODE_BINARY = 0x2

Frame::OPCODE_CLOSE

Close frame.

static constexpr v_word8 OPCODE_CLOSE = 0x8

Frame::OPCODE_PING

Ping frame.

static constexpr v_word8 OPCODE_PING = 0x9

Frame::OPCODE_PONG

Pong frame.

static constexpr v_word8 OPCODE_PONG = 0xA

Frame::packHeaderBits

Serialize Frame::Header.

  • @param bits - out parameter. Two bytes header.
  • @param frameHeader - Frame::Header.
  • @param messageLengthScenario - out parameter. Depending on message length scenario. Message length can be encoded in 1, 2, or 8 bytes.

static void packHeaderBits(v_word16& bits, const Header& frameHeader, v_word8& messageLengthScenario)

Frame::unpackHeaderBits

Deserialize Frame::Header.

  • @param bits - two bytes header.
  • @param frameHeader - out parameter. Frame::Header.
  • @param messageLen1 - first byte of encoded message length.

static void unpackHeaderBits(v_word16 bits, Header& frameHeader, v_word8& messageLen1)

Frame::Header

Frame header.

namespace oatpp { namespace websocket { 
  class Frame {
    struct Header {}
  };
}}

Fields

Type Name Summary
bool fin FIN bit.
bool rsv1 RSV1 bit. Should be false.
bool rsv2 RSV2 bit. Should be false.
bool rsv3 RSV3 bit. Should be false.
v_word8 opcode Operation code.
bool hasMask Mask bit. For client-to-server messages should be true. For server-to-client messages should be false.
v_int64 payloadLength Decoded payload length.
v_word8 mask Payload mask.

Frame::Header::fin

FIN bit.

bool fin

Frame::Header::rsv1

RSV1 bit. Should be false.

bool rsv1

Frame::Header::rsv2

RSV2 bit. Should be false.

bool rsv2

Frame::Header::rsv3

RSV3 bit. Should be false.

bool rsv3

Frame::Header::opcode

Operation code.

v_word8 opcode

Frame::Header::hasMask

Mask bit. For client-to-server messages should be true. For server-to-client messages should be false.

bool hasMask

Frame::Header::payloadLength

Decoded payload length.

v_int64 payloadLength

Frame::Header::mask

Payload mask.

v_word8 mask[4] =