20 #ifndef RIPPLE_SERVER_WSSESSION_H_INCLUDED
21 #define RIPPLE_SERVER_WSSESSION_H_INCLUDED
23 #include <ripple/server/Handoff.h>
24 #include <ripple/server/Port.h>
25 #include <ripple/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>
48 virtual ~WSMsg() =
default;
71 template <
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;
virtual boost::asio::ip::tcp::endpoint const & remote_endpoint() const =0
virtual void send(std::shared_ptr< WSMsg > w)=0
Send a WebSockets message.
T back_inserter(T... args)
virtual ~WSSession()=default
StreambufWSMsg(Streambuf &&sb)
virtual void complete()=0
Indicate that the response is complete.
virtual http_request_type const & request() const =0
std::shared_ptr< void > appDefined
std::pair< boost::tribool, std::vector< boost::asio::const_buffer > > prepare(std::size_t bytes, std::function< void(void)>) override
Retrieve message data.
virtual Port const & port() const =0
Configuration information for a Server listening port.
Use hash_* containers for keys that do not need a cryptographically secure hashing algorithm.
WSSession & operator=(WSSession const &)=delete
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.
boost::beast::http::request< boost::beast::http::dynamic_body > http_request_type