20#ifndef RIPPLE_SERVER_WSSESSION_H_INCLUDED
21#define RIPPLE_SERVER_WSSESSION_H_INCLUDED
23#include <xrpl/server/Handoff.h>
24#include <xrpl/server/Port.h>
25#include <xrpl/server/Writer.h>
27#include <boost/asio/buffer.hpp>
28#include <boost/asio/ip/tcp.hpp>
29#include <boost/beast/core/buffers_prefix.hpp>
30#include <boost/beast/websocket/rfc6455.hpp>
31#include <boost/logic/tribool.hpp>
71template <
class Streambuf>
89 if (bytes <
sb_.size())
99 auto const pb = boost::beast::buffers_prefix(
n_,
sb_.data());
126 virtual boost::asio::ip::tcp::endpoint
const&
137 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