xrpld
Loading...
Searching...
No Matches
xrpl::PlainWSPeer< Handler > Class Template Referenceabstract

#include <PlainWSPeer.h>

Inheritance diagram for xrpl::PlainWSPeer< Handler >:
Collaboration diagram for xrpl::PlainWSPeer< Handler >:

Public Member Functions

template<class Body, class Headers>
 PlainWSPeer (Port const &port, Handler &handler, endpoint_type remoteAddress, boost::beast::http::request< Body, Headers > &&request, socket_type &&socket, beast::Journal journal)
void run () override
Port const & port () const override
http_request_type const & request () const override
boost::asio::ip::tcp::endpoint const & remoteEndpoint () const override
void send (std::shared_ptr< WSMsg > w) override
 Send a WebSockets message.
void close () override
virtual void close (boost::beast::websocket::close_reason const &reason)=0
void complete () override
 Indicate that the response is complete.
IOListios ()
 Return the IOList associated with the work.
shared_from_this (T... args)
weak_from_this (T... args)

Public Attributes

std::shared_ptr< void > appDefined

Protected Member Functions

PlainWSPeer< Handler > & impl ()
void onWsHandshake (error_code const &ec)
void doWrite ()
void onWrite (error_code const &ec)
void onWriteFin (error_code const &ec)
void doRead ()
void onRead (error_code const &ec)
void onClose (error_code const &ec)
void startTimer ()
void cancelTimer ()
void onPing (error_code const &ec)
void onPingPong (boost::beast::websocket::frame_type kind, boost::beast::string_view payload)
void onTimer (error_code ec)
void fail (error_code ec, String const &what)

Protected Attributes

Port const & port_
Handler & handler_
endpoint_type remoteAddress_
beast::WrappedSink sink_
beast::Journal const j_
boost::asio::executor_work_guard< boost::asio::executor > work_
boost::asio::strand< boost::asio::executor > strand_

Private Types

using clock_type = std::chrono::system_clock
using error_code = boost::system::error_code
using endpoint_type = boost::asio::ip::tcp::endpoint
using waitable_timer = boost::asio::basic_waitable_timer<clock_type>
using socket_type = boost::beast::tcp_stream

Private Member Functions

void destroy ()

Private Attributes

boost::beast::websocket::stream< socket_typews_
http_request_type request_
boost::beast::multi_buffer rb_
boost::beast::multi_buffer wb_
std::list< std::shared_ptr< WSMsg > > wq_
bool doClose_
 The socket has been closed, or will close after the next write finishes.
boost::beast::websocket::close_reason cr_
waitable_timer timer_
bool closeOnTimer_
bool pingActive_
boost::beast::websocket::ping_data payload_
error_code ec_
std::function< void(boost::beast::websocket::frame_type, boost::beast::string_view)> controlCallback_
IOListios_

Friends

class BasePeer< Handler, PlainWSPeer >
class BaseWSPeer< Handler, PlainWSPeer >

Detailed Description

template<class Handler>
class xrpl::PlainWSPeer< Handler >

Definition at line 12 of file PlainWSPeer.h.

Member Typedef Documentation

◆ clock_type

template<class Handler>
using xrpl::PlainWSPeer< Handler >::clock_type = std::chrono::system_clock
private

Definition at line 18 of file PlainWSPeer.h.

◆ error_code

template<class Handler>
using xrpl::PlainWSPeer< Handler >::error_code = boost::system::error_code
private

Definition at line 19 of file PlainWSPeer.h.

◆ endpoint_type

template<class Handler>
using xrpl::PlainWSPeer< Handler >::endpoint_type = boost::asio::ip::tcp::endpoint
private

Definition at line 20 of file PlainWSPeer.h.

◆ waitable_timer

template<class Handler>
using xrpl::PlainWSPeer< Handler >::waitable_timer = boost::asio::basic_waitable_timer<clock_type>
private

Definition at line 21 of file PlainWSPeer.h.

◆ socket_type

template<class Handler>
using xrpl::PlainWSPeer< Handler >::socket_type = boost::beast::tcp_stream
private

Definition at line 22 of file PlainWSPeer.h.

Constructor & Destructor Documentation

◆ PlainWSPeer()

template<class Handler>
template<class Body, class Headers>
xrpl::PlainWSPeer< Handler >::PlainWSPeer ( Port const & port,
Handler & handler,
endpoint_type remoteAddress,
boost::beast::http::request< Body, Headers > && request,
socket_type && socket,
beast::Journal journal )

Definition at line 41 of file PlainWSPeer.h.

Member Function Documentation

◆ run()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::run ( )
overridevirtualinherited

Implements xrpl::WSSession.

Definition at line 67 of file BaseWSPeer.h.

◆ port()

Port const & xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::port ( ) const
nodiscardoverridevirtualinherited

Implements xrpl::WSSession.

Definition at line 74 of file BaseWSPeer.h.

◆ request()

http_request_type const & xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::request ( ) const
nodiscardoverridevirtualinherited

Implements xrpl::WSSession.

Definition at line 80 of file BaseWSPeer.h.

◆ remoteEndpoint()

boost::asio::ip::tcp::endpoint const & xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::remoteEndpoint ( ) const
nodiscardoverridevirtualinherited

Implements xrpl::WSSession.

Definition at line 86 of file BaseWSPeer.h.

◆ send()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::send ( std::shared_ptr< WSMsg > w)
overridevirtualinherited

Send a WebSockets message.

Implements xrpl::WSSession.

Definition at line 92 of file BaseWSPeer.h.

◆ close() [1/2]

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::close ( )
overridevirtualinherited

Reimplemented from xrpl::BasePeer< Handler, PlainWSPeer< Handler > >.

Definition at line 95 of file BaseWSPeer.h.

◆ close() [2/2]

virtual void xrpl::WSSession::close ( boost::beast::websocket::close_reason const & reason)
pure virtualinherited

◆ complete()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::complete ( )
overridevirtualinherited

Indicate that the response is complete.

The handler should call this when it has completed writing the response.

Implements xrpl::WSSession.

Definition at line 101 of file BaseWSPeer.h.

◆ impl()

PlainWSPeer< Handler > & xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::impl ( )
protectedinherited

Definition at line 105 of file BaseWSPeer.h.

◆ onWsHandshake()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::onWsHandshake ( error_code const & ec)
protectedinherited

Definition at line 111 of file BaseWSPeer.h.

◆ doWrite()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::doWrite ( )
protectedinherited

Definition at line 114 of file BaseWSPeer.h.

◆ onWrite()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::onWrite ( error_code const & ec)
protectedinherited

Definition at line 117 of file BaseWSPeer.h.

◆ onWriteFin()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::onWriteFin ( error_code const & ec)
protectedinherited

Definition at line 120 of file BaseWSPeer.h.

◆ doRead()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::doRead ( )
protectedinherited

Definition at line 123 of file BaseWSPeer.h.

◆ onRead()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::onRead ( error_code const & ec)
protectedinherited

Definition at line 126 of file BaseWSPeer.h.

◆ onClose()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::onClose ( error_code const & ec)
protectedinherited

Definition at line 129 of file BaseWSPeer.h.

◆ startTimer()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::startTimer ( )
protectedinherited

Definition at line 132 of file BaseWSPeer.h.

◆ cancelTimer()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::cancelTimer ( )
protectedinherited

Definition at line 135 of file BaseWSPeer.h.

◆ onPing()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::onPing ( error_code const & ec)
protectedinherited

Definition at line 138 of file BaseWSPeer.h.

◆ onPingPong()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::onPingPong ( boost::beast::websocket::frame_type kind,
boost::beast::string_view payload )
protectedinherited

Definition at line 141 of file BaseWSPeer.h.

◆ onTimer()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::onTimer ( error_code ec)
protectedinherited

Definition at line 144 of file BaseWSPeer.h.

◆ fail()

void xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::fail ( error_code ec,
String const & what )
protectedinherited

Definition at line 148 of file BaseWSPeer.h.

◆ destroy()

void xrpl::IOList::Work::destroy ( )
privateinherited

Definition at line 22 of file io_list.h.

◆ ios()

Return the IOList associated with the work.

Requirements: The call to IOList::emplace to create the work has already returned.

Definition at line 40 of file io_list.h.

◆ BasePeer< Handler, PlainWSPeer >

template<class Handler>
friend class BasePeer< Handler, PlainWSPeer >
friend

Definition at line 41 of file PlainWSPeer.h.

◆ BaseWSPeer< Handler, PlainWSPeer >

template<class Handler>
friend class BaseWSPeer< Handler, PlainWSPeer >
friend

Definition at line 41 of file PlainWSPeer.h.

Member Data Documentation

◆ ws_

template<class Handler>
boost::beast::websocket::stream<socket_type> xrpl::PlainWSPeer< Handler >::ws_
private

Definition at line 24 of file PlainWSPeer.h.

◆ request_

http_request_type xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::request_
privateinherited

Definition at line 38 of file BaseWSPeer.h.

◆ rb_

boost::beast::multi_buffer xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::rb_
privateinherited

Definition at line 39 of file BaseWSPeer.h.

◆ wb_

boost::beast::multi_buffer xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::wb_
privateinherited

Definition at line 40 of file BaseWSPeer.h.

◆ wq_

std::list<std::shared_ptr<WSMsg> > xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::wq_
privateinherited

Definition at line 41 of file BaseWSPeer.h.

◆ doClose_

bool xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::doClose_
privateinherited

The socket has been closed, or will close after the next write finishes.

Do not do any more writes, and don't try to close again.

Definition at line 45 of file BaseWSPeer.h.

◆ cr_

boost::beast::websocket::close_reason xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::cr_
privateinherited

Definition at line 46 of file BaseWSPeer.h.

◆ timer_

waitable_timer xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::timer_
privateinherited

Definition at line 47 of file BaseWSPeer.h.

◆ closeOnTimer_

bool xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::closeOnTimer_
privateinherited

Definition at line 48 of file BaseWSPeer.h.

◆ pingActive_

bool xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::pingActive_
privateinherited

Definition at line 49 of file BaseWSPeer.h.

◆ payload_

boost::beast::websocket::ping_data xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::payload_
privateinherited

Definition at line 50 of file BaseWSPeer.h.

◆ ec_

error_code xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::ec_
privateinherited

Definition at line 51 of file BaseWSPeer.h.

◆ controlCallback_

std::function<void(boost::beast::websocket::frame_type, boost::beast::string_view)> xrpl::BaseWSPeer< Handler, PlainWSPeer< Handler > >::controlCallback_
privateinherited

Definition at line 53 of file BaseWSPeer.h.

◆ port_

Port const& xrpl::BasePeer< Handler, PlainWSPeer< Handler > >::port_
protectedinherited

Definition at line 28 of file BasePeer.h.

◆ handler_

Handler& xrpl::BasePeer< Handler, PlainWSPeer< Handler > >::handler_
protectedinherited

Definition at line 29 of file BasePeer.h.

◆ remoteAddress_

endpoint_type xrpl::BasePeer< Handler, PlainWSPeer< Handler > >::remoteAddress_
protectedinherited

Definition at line 30 of file BasePeer.h.

◆ sink_

beast::WrappedSink xrpl::BasePeer< Handler, PlainWSPeer< Handler > >::sink_
protectedinherited

Definition at line 31 of file BasePeer.h.

◆ j_

beast::Journal const xrpl::BasePeer< Handler, PlainWSPeer< Handler > >::j_
protectedinherited

Definition at line 32 of file BasePeer.h.

◆ work_

boost::asio::executor_work_guard<boost::asio::executor> xrpl::BasePeer< Handler, PlainWSPeer< Handler > >::work_
protectedinherited

Definition at line 34 of file BasePeer.h.

◆ strand_

boost::asio::strand<boost::asio::executor> xrpl::BasePeer< Handler, PlainWSPeer< Handler > >::strand_
protectedinherited

Definition at line 35 of file BasePeer.h.

◆ ios_

IOList* xrpl::IOList::Work::ios_
privateinherited

Definition at line 25 of file io_list.h.

◆ appDefined

Definition at line 88 of file WSSession.h.