rippled
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
ripple::PlainWSPeer< Handler > Class Template Reference

#include <PlainWSPeer.h>

Inheritance diagram for ripple::PlainWSPeer< Handler >:
Inheritance graph
[legend]
Collaboration diagram for ripple::PlainWSPeer< Handler >:
Collaboration graph
[legend]

Public Member Functions

template<class Body , class Headers >
 PlainWSPeer (Port const &port, Handler &handler, endpoint_type remote_address, 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 & remote_endpoint () const override
 
void send (std::shared_ptr< WSMsg > w) override
 Send a WebSockets message.
 
void close () override
 
void close (boost::beast::websocket::close_reason const &reason) override
 
void complete () override
 Indicate that the response is complete.
 
io_listios ()
 Return the io_list 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 on_ws_handshake (error_code const &ec)
 
void do_write ()
 
void on_write (error_code const &ec)
 
void on_write_fin (error_code const &ec)
 
void do_read ()
 
void on_read (error_code const &ec)
 
void on_close (error_code const &ec)
 
void start_timer ()
 
void cancel_timer ()
 
void on_ping (error_code const &ec)
 
void on_ping_pong (boost::beast::websocket::frame_type kind, boost::beast::string_view payload)
 
void on_timer (error_code ec)
 
void fail (error_code ec, String const &what)
 

Protected Attributes

Port const & port_
 
Handler & handler_
 
endpoint_type remote_address_
 
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

template<class = void>
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 do_close_
 The socket has been closed, or will close after the next write finishes.
 
boost::beast::websocket::close_reason cr_
 
waitable_timer timer_
 
bool close_on_timer_
 
bool ping_active_
 
boost::beast::websocket::ping_data payload_
 
error_code ec_
 
std::function< void(boost::beast::websocket::frame_type, boost::beast::string_view)> control_callback_
 
io_listios_ = nullptr
 

Friends

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

Detailed Description

template<class Handler>
class ripple::PlainWSPeer< Handler >

Definition at line 32 of file PlainWSPeer.h.

Member Typedef Documentation

◆ clock_type

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

Definition at line 38 of file PlainWSPeer.h.

◆ error_code

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

Definition at line 39 of file PlainWSPeer.h.

◆ endpoint_type

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

Definition at line 40 of file PlainWSPeer.h.

◆ waitable_timer

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

Definition at line 41 of file PlainWSPeer.h.

◆ socket_type

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

Definition at line 42 of file PlainWSPeer.h.

Constructor & Destructor Documentation

◆ PlainWSPeer()

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

Definition at line 61 of file PlainWSPeer.h.

Member Function Documentation

◆ run()

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

Implements ripple::WSSession.

Definition at line 87 of file BaseWSPeer.h.

◆ port()

Port const & ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::port ( ) const
overridevirtualinherited

Implements ripple::WSSession.

Definition at line 94 of file BaseWSPeer.h.

◆ request()

http_request_type const & ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::request ( ) const
overridevirtualinherited

Implements ripple::WSSession.

Definition at line 100 of file BaseWSPeer.h.

◆ remote_endpoint()

boost::asio::ip::tcp::endpoint const & ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::remote_endpoint ( ) const
overridevirtualinherited

Implements ripple::WSSession.

Definition at line 106 of file BaseWSPeer.h.

◆ send()

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

Send a WebSockets message.

Implements ripple::WSSession.

Definition at line 112 of file BaseWSPeer.h.

◆ close() [1/2]

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

Reimplemented from ripple::BasePeer< Handler, Impl >.

Definition at line 115 of file BaseWSPeer.h.

◆ close() [2/2]

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::close ( boost::beast::websocket::close_reason const &  reason)
overridevirtualinherited

Implements ripple::WSSession.

Definition at line 118 of file BaseWSPeer.h.

◆ complete()

void ripple::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 ripple::WSSession.

Definition at line 121 of file BaseWSPeer.h.

◆ impl()

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

Definition at line 125 of file BaseWSPeer.h.

◆ on_ws_handshake()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::on_ws_handshake ( error_code const &  ec)
protectedinherited

Definition at line 131 of file BaseWSPeer.h.

◆ do_write()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::do_write ( )
protectedinherited

Definition at line 134 of file BaseWSPeer.h.

◆ on_write()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::on_write ( error_code const &  ec)
protectedinherited

Definition at line 137 of file BaseWSPeer.h.

◆ on_write_fin()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::on_write_fin ( error_code const &  ec)
protectedinherited

Definition at line 140 of file BaseWSPeer.h.

◆ do_read()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::do_read ( )
protectedinherited

Definition at line 143 of file BaseWSPeer.h.

◆ on_read()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::on_read ( error_code const &  ec)
protectedinherited

Definition at line 146 of file BaseWSPeer.h.

◆ on_close()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::on_close ( error_code const &  ec)
protectedinherited

Definition at line 149 of file BaseWSPeer.h.

◆ start_timer()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::start_timer ( )
protectedinherited

Definition at line 152 of file BaseWSPeer.h.

◆ cancel_timer()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::cancel_timer ( )
protectedinherited

Definition at line 155 of file BaseWSPeer.h.

◆ on_ping()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::on_ping ( error_code const &  ec)
protectedinherited

Definition at line 158 of file BaseWSPeer.h.

◆ on_ping_pong()

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

Definition at line 161 of file BaseWSPeer.h.

◆ on_timer()

void ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::on_timer ( error_code  ec)
protectedinherited

Definition at line 166 of file BaseWSPeer.h.

◆ fail()

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

Definition at line 170 of file BaseWSPeer.h.

◆ destroy()

template<class = void>
void ripple::io_list::work::destroy ( )
privateinherited

Definition at line 182 of file io_list.h.

◆ ios()

io_list & ripple::io_list::work::ios ( )
inherited

Return the io_list associated with the work.

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

Definition at line 60 of file io_list.h.

Friends And Related Symbol Documentation

◆ BasePeer< Handler, PlainWSPeer >

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

Definition at line 61 of file PlainWSPeer.h.

◆ BaseWSPeer< Handler, PlainWSPeer >

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

Definition at line 61 of file PlainWSPeer.h.

Member Data Documentation

◆ ws_

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

Definition at line 44 of file PlainWSPeer.h.

◆ request_

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

Definition at line 57 of file BaseWSPeer.h.

◆ rb_

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

Definition at line 58 of file BaseWSPeer.h.

◆ wb_

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

Definition at line 59 of file BaseWSPeer.h.

◆ wq_

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

Definition at line 60 of file BaseWSPeer.h.

◆ do_close_

bool ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::do_close_
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 64 of file BaseWSPeer.h.

◆ cr_

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

Definition at line 65 of file BaseWSPeer.h.

◆ timer_

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

Definition at line 66 of file BaseWSPeer.h.

◆ close_on_timer_

bool ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::close_on_timer_
privateinherited

Definition at line 67 of file BaseWSPeer.h.

◆ ping_active_

bool ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::ping_active_
privateinherited

Definition at line 68 of file BaseWSPeer.h.

◆ payload_

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

Definition at line 69 of file BaseWSPeer.h.

◆ ec_

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

Definition at line 70 of file BaseWSPeer.h.

◆ control_callback_

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

Definition at line 73 of file BaseWSPeer.h.

◆ port_

template<class Handler , class Impl >
Port const& ripple::BasePeer< Handler, Impl >::port_
protectedinherited

Definition at line 47 of file BasePeer.h.

◆ handler_

template<class Handler , class Impl >
Handler& ripple::BasePeer< Handler, Impl >::handler_
protectedinherited

Definition at line 48 of file BasePeer.h.

◆ remote_address_

template<class Handler , class Impl >
endpoint_type ripple::BasePeer< Handler, Impl >::remote_address_
protectedinherited

Definition at line 49 of file BasePeer.h.

◆ sink_

template<class Handler , class Impl >
beast::WrappedSink ripple::BasePeer< Handler, Impl >::sink_
protectedinherited

Definition at line 50 of file BasePeer.h.

◆ j_

template<class Handler , class Impl >
beast::Journal const ripple::BasePeer< Handler, Impl >::j_
protectedinherited

Definition at line 51 of file BasePeer.h.

◆ work_

template<class Handler , class Impl >
boost::asio::executor_work_guard<boost::asio::executor> ripple::BasePeer< Handler, Impl >::work_
protectedinherited

Definition at line 53 of file BasePeer.h.

◆ strand_

template<class Handler , class Impl >
boost::asio::strand<boost::asio::executor> ripple::BasePeer< Handler, Impl >::strand_
protectedinherited

Definition at line 54 of file BasePeer.h.

◆ ios_

io_list* ripple::io_list::work::ios_ = nullptr
privateinherited

Definition at line 45 of file io_list.h.

◆ appDefined

std::shared_ptr<void> ripple::WSSession::appDefined
inherited

Definition at line 109 of file WSSession.h.