C++ Actor Framework 0.19
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | List of all members
caf::net::web_socket::server Class Reference

Implements the server part for the WebSocket Protocol as defined in RFC. More...

#include <server.hpp>

Inheritance diagram for caf::net::web_socket::server:
caf::net::octet_stream::upper_layer caf::net::generic_upper_layer

Public Types

using upper_layer_ptr = std::unique_ptr< web_socket::upper_layer::server >
 

Public Member Functions

 server (upper_layer_ptr up)
 
error start (octet_stream::lower_layer *down) override
 Initializes the upper layer.
 
void abort (const error &reason) override
 Called by the lower layer for cleaning up any state in case of an error or when disposed.
 
ptrdiff_t consume (byte_span input, byte_span) override
 Consumes bytes from the lower layer.
 
void prepare_send () override
 Gives the upper layer an opportunity to add additional data to the output buffer.
 
bool done_sending () override
 Queries whether all pending data has been sent.
 
virtual error start (lower_layer *down)=0
 Initializes the upper layer.
 
virtual ptrdiff_t consume (byte_span buffer, byte_span delta)=0
 Consumes bytes from the lower layer.
 
virtual void prepare_send ()=0
 Gives the upper layer an opportunity to add additional data to the output buffer.
 
virtual bool done_sending ()=0
 Queries whether all pending data has been sent.
 
virtual void abort (const error &reason)=0
 Called by the lower layer for cleaning up any state in case of an error or when disposed.
 

Static Public Member Functions

static std::unique_ptr< servermake (upper_layer_ptr up)
 

Detailed Description

Implements the server part for the WebSocket Protocol as defined in RFC.

  1. Initially, the layer performs the WebSocket handshake. Once completed, this layer decodes RFC 6455 frames and forwards binary and text messages to UpperLayer.

Member Function Documentation

◆ abort()

void caf::net::web_socket::server::abort ( const error reason)
overridevirtual

Called by the lower layer for cleaning up any state in case of an error or when disposed.

Implements caf::net::generic_upper_layer.

◆ consume()

ptrdiff_t caf::net::web_socket::server::consume ( byte_span  buffer,
byte_span  delta 
)
overridevirtual

Consumes bytes from the lower layer.

Parameters
bufferAvailable bytes to read.
deltaBytes that arrived since last calling this function.
Returns
The number of consumed bytes. May be zero if waiting for more input or negative to signal an error.

Implements caf::net::octet_stream::upper_layer.

◆ done_sending()

bool caf::net::web_socket::server::done_sending ( )
overridevirtual

Queries whether all pending data has been sent.

The lower calls this function to decide whether it has to wait for write events on the socket.

Implements caf::net::generic_upper_layer.

◆ prepare_send()

void caf::net::web_socket::server::prepare_send ( )
overridevirtual

Gives the upper layer an opportunity to add additional data to the output buffer.

Implements caf::net::generic_upper_layer.

◆ start()

error caf::net::web_socket::server::start ( octet_stream::lower_layer down)
overridevirtual

Initializes the upper layer.

Parameters
downA pointer to the lower layer that remains valid for the lifetime of the upper layer.

Implements caf::net::octet_stream::upper_layer.


The documentation for this class was generated from the following files: