1#ifndef XRPL_SERVER_WSSESSION_H_INCLUDED
2#define XRPL_SERVER_WSSESSION_H_INCLUDED
4#include <xrpl/server/Handoff.h>
5#include <xrpl/server/Port.h>
6#include <xrpl/server/Writer.h>
8#include <boost/asio/buffer.hpp>
9#include <boost/asio/ip/tcp.hpp>
10#include <boost/beast/core/buffers_prefix.hpp>
11#include <boost/beast/websocket/rfc6455.hpp>
12#include <boost/logic/tribool.hpp>
52template <
class Streambuf>
70 if (bytes <
sb_.size())
80 auto const pb = boost::beast::buffers_prefix(
n_,
sb_.data());
107 virtual boost::asio::ip::tcp::endpoint
const&
118 close(boost::beast::websocket::close_reason
const& reason) = 0;
T back_inserter(T... args)
std::pair< boost::tribool, std::vector< boost::asio::const_buffer > > prepare(std::size_t bytes, std::function< void(void)>) override
Retrieve message data.
StreambufWSMsg(Streambuf &&sb)
WSMsg & operator=(WSMsg const &)=delete
virtual std::pair< boost::tribool, std::vector< boost::asio::const_buffer > > prepare(std::size_t bytes, std::function< void(void)> resume)=0
Retrieve message data.
WSMsg(WSMsg const &)=delete
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
boost::beast::http::request< boost::beast::http::dynamic_body > http_request_type
Configuration information for a Server listening port.
std::shared_ptr< void > appDefined
virtual http_request_type const & request() const =0
virtual boost::asio::ip::tcp::endpoint const & remote_endpoint() const =0
WSSession & operator=(WSSession const &)=delete
virtual Port const & port() const =0
virtual void send(std::shared_ptr< WSMsg > w)=0
Send a WebSockets message.
virtual void close(boost::beast::websocket::close_reason const &reason)=0
WSSession(WSSession const &)=delete
virtual void complete()=0
Indicate that the response is complete.
virtual ~WSSession()=default