rippled
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 Referenceabstract
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
 
virtual Port const & port () const =0
 
http_request_type const & request () const override
 
virtual http_request_type const & request () const =0
 
boost::asio::ip::tcp::endpoint const & remote_endpoint () const override
 
virtual boost::asio::ip::tcp::endpoint const & remote_endpoint () const =0
 
void send (std::shared_ptr< WSMsg > w) override
 Send a WebSockets message. More...
 
void close () override
 
void close (boost::beast::websocket::close_reason const &reason) override
 
void complete () override
 Indicate that the response is complete. More...
 
io_listios ()
 Return the io_list associated with the work. More...
 
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_
 
const beast::Journal 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_
 
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 30 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 36 of file PlainWSPeer.h.

◆ error_code

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

Definition at line 37 of file PlainWSPeer.h.

◆ endpoint_type

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

Definition at line 38 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 39 of file PlainWSPeer.h.

◆ socket_type

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

Definition at line 40 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 59 of file PlainWSPeer.h.

Member Function Documentation

◆ run()

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

Implements ripple::WSSession.

Definition at line 185 of file BaseWSPeer.h.

◆ port() [1/2]

Port const& ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::port
overrideinherited

Definition at line 85 of file BaseWSPeer.h.

◆ port() [2/2]

virtual Port const& ripple::WSSession::port ( ) const
pure virtualinherited

◆ request() [1/2]

http_request_type const& ripple::BaseWSPeer< Handler, PlainWSPeer< Handler > >::request
overrideinherited

Definition at line 91 of file BaseWSPeer.h.

◆ request() [2/2]

virtual http_request_type const& ripple::WSSession::request ( ) const
pure virtualinherited

◆ remote_endpoint() [1/2]

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

Definition at line 97 of file BaseWSPeer.h.

◆ remote_endpoint() [2/2]

virtual boost::asio::ip::tcp::endpoint const& ripple::WSSession::remote_endpoint ( ) const
pure virtualinherited

◆ send()

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

Send a WebSockets message.

Implements ripple::WSSession.

Definition at line 219 of file BaseWSPeer.h.

◆ close() [1/2]

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

Implements ripple::WSSession.

Definition at line 245 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 252 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 279 of file BaseWSPeer.h.

◆ impl()

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

Definition at line 116 of file BaseWSPeer.h.

◆ on_ws_handshake()

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

Definition at line 290 of file BaseWSPeer.h.

◆ do_write()

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

Definition at line 300 of file BaseWSPeer.h.

◆ on_write()

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

Definition at line 311 of file BaseWSPeer.h.

◆ on_write_fin()

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

Definition at line 345 of file BaseWSPeer.h.

◆ do_read()

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

Definition at line 365 of file BaseWSPeer.h.

◆ on_read()

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

Definition at line 383 of file BaseWSPeer.h.

◆ on_close()

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

Definition at line 399 of file BaseWSPeer.h.

◆ start_timer()

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

Definition at line 406 of file BaseWSPeer.h.

◆ cancel_timer()

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

Definition at line 427 of file BaseWSPeer.h.

◆ on_ping()

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

Definition at line 435 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 447 of file BaseWSPeer.h.

◆ on_timer()

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

Definition at line 468 of file BaseWSPeer.h.

◆ fail()

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

Definition at line 501 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 Function Documentation

◆ BasePeer< Handler, PlainWSPeer >

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

Definition at line 33 of file PlainWSPeer.h.

◆ BaseWSPeer< Handler, PlainWSPeer >

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

Definition at line 34 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 42 of file PlainWSPeer.h.

◆ request_

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

Definition at line 51 of file BaseWSPeer.h.

◆ rb_

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

Definition at line 52 of file BaseWSPeer.h.

◆ wb_

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

Definition at line 53 of file BaseWSPeer.h.

◆ wq_

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

Definition at line 54 of file BaseWSPeer.h.

◆ do_close_

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

Definition at line 55 of file BaseWSPeer.h.

◆ cr_

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

Definition at line 56 of file BaseWSPeer.h.

◆ timer_

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

Definition at line 57 of file BaseWSPeer.h.

◆ close_on_timer_

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

Definition at line 58 of file BaseWSPeer.h.

◆ ping_active_

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

Definition at line 59 of file BaseWSPeer.h.

◆ payload_

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

Definition at line 60 of file BaseWSPeer.h.

◆ ec_

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

Definition at line 61 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 64 of file BaseWSPeer.h.

◆ port_

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

Definition at line 45 of file BasePeer.h.

◆ handler_

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

Definition at line 46 of file BasePeer.h.

◆ remote_address_

endpoint_type ripple::BasePeer< Handler, PlainWSPeer< Handler > >::remote_address_
protectedinherited

Definition at line 47 of file BasePeer.h.

◆ sink_

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

Definition at line 48 of file BasePeer.h.

◆ j_

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

Definition at line 49 of file BasePeer.h.

◆ work_

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

Definition at line 51 of file BasePeer.h.

◆ strand_

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

Definition at line 52 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.