rippled
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
ripple::SSLWSPeer< Handler > Class Template Referenceabstract
Inheritance diagram for ripple::SSLWSPeer< Handler >:
Inheritance graph
[legend]
Collaboration diagram for ripple::SSLWSPeer< Handler >:
Collaboration graph
[legend]

Public Member Functions

template<class Body , class Headers >
 SSLWSPeer (Port const &port, Handler &handler, endpoint_type remote_endpoint, boost::beast::http::request< Body, Headers > &&request, std::unique_ptr< stream_type > &&stream_ptr, 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

SSLWSPeer< 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 socket_type = boost::beast::tcp_stream
 
using stream_type = boost::beast::ssl_stream< socket_type >
 
using waitable_timer = boost::asio::basic_waitable_timer< clock_type >
 

Private Member Functions

template<class = void>
void destroy ()
 

Private Attributes

std::unique_ptr< stream_typestream_ptr_
 
boost::beast::websocket::stream< stream_type & > ws_
 
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. More...
 
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, SSLWSPeer >
 
class BaseWSPeer< Handler, SSLWSPeer >
 

Detailed Description

template<class Handler>
class ripple::SSLWSPeer< Handler >

Definition at line 36 of file SSLWSPeer.h.

Member Typedef Documentation

◆ clock_type

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

Definition at line 42 of file SSLWSPeer.h.

◆ error_code

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

Definition at line 43 of file SSLWSPeer.h.

◆ endpoint_type

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

Definition at line 44 of file SSLWSPeer.h.

◆ socket_type

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

Definition at line 45 of file SSLWSPeer.h.

◆ stream_type

template<class Handler >
using ripple::SSLWSPeer< Handler >::stream_type = boost::beast::ssl_stream<socket_type>
private

Definition at line 46 of file SSLWSPeer.h.

◆ waitable_timer

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

Definition at line 47 of file SSLWSPeer.h.

Constructor & Destructor Documentation

◆ SSLWSPeer()

template<class Handler >
template<class Body , class Headers >
ripple::SSLWSPeer< Handler >::SSLWSPeer ( Port const &  port,
Handler &  handler,
endpoint_type  remote_endpoint,
boost::beast::http::request< Body, Headers > &&  request,
std::unique_ptr< stream_type > &&  stream_ptr,
beast::Journal  journal 
)

Definition at line 67 of file SSLWSPeer.h.

Member Function Documentation

◆ run()

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

Implements ripple::WSSession.

Definition at line 189 of file BaseWSPeer.h.

◆ port() [1/2]

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

Definition at line 89 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, SSLWSPeer< Handler > >::request
overrideinherited

Definition at line 95 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, SSLWSPeer< Handler > >::remote_endpoint
overrideinherited

Definition at line 101 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, SSLWSPeer< Handler > >::send ( std::shared_ptr< WSMsg w)
overridevirtualinherited

Send a WebSockets message.

Implements ripple::WSSession.

Definition at line 223 of file BaseWSPeer.h.

◆ close() [1/2]

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

Implements ripple::WSSession.

Definition at line 249 of file BaseWSPeer.h.

◆ close() [2/2]

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

Implements ripple::WSSession.

Definition at line 256 of file BaseWSPeer.h.

◆ complete()

void ripple::BaseWSPeer< Handler, SSLWSPeer< 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 285 of file BaseWSPeer.h.

◆ impl()

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

Definition at line 120 of file BaseWSPeer.h.

◆ on_ws_handshake()

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

Definition at line 296 of file BaseWSPeer.h.

◆ do_write()

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

Definition at line 306 of file BaseWSPeer.h.

◆ on_write()

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

Definition at line 317 of file BaseWSPeer.h.

◆ on_write_fin()

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

Definition at line 351 of file BaseWSPeer.h.

◆ do_read()

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

Definition at line 373 of file BaseWSPeer.h.

◆ on_read()

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

Definition at line 391 of file BaseWSPeer.h.

◆ on_close()

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

Definition at line 407 of file BaseWSPeer.h.

◆ start_timer()

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

Definition at line 414 of file BaseWSPeer.h.

◆ cancel_timer()

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

Definition at line 435 of file BaseWSPeer.h.

◆ on_ping()

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

Definition at line 443 of file BaseWSPeer.h.

◆ on_ping_pong()

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

Definition at line 455 of file BaseWSPeer.h.

◆ on_timer()

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

Definition at line 476 of file BaseWSPeer.h.

◆ fail()

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

Definition at line 509 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, SSLWSPeer >

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

Definition at line 39 of file SSLWSPeer.h.

◆ BaseWSPeer< Handler, SSLWSPeer >

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

Definition at line 40 of file SSLWSPeer.h.

Member Data Documentation

◆ stream_ptr_

template<class Handler >
std::unique_ptr<stream_type> ripple::SSLWSPeer< Handler >::stream_ptr_
private

Definition at line 49 of file SSLWSPeer.h.

◆ ws_

template<class Handler >
boost::beast::websocket::stream<stream_type&> ripple::SSLWSPeer< Handler >::ws_
private

Definition at line 50 of file SSLWSPeer.h.

◆ request_

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

Definition at line 52 of file BaseWSPeer.h.

◆ rb_

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

Definition at line 53 of file BaseWSPeer.h.

◆ wb_

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

Definition at line 54 of file BaseWSPeer.h.

◆ wq_

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

Definition at line 55 of file BaseWSPeer.h.

◆ do_close_

bool ripple::BaseWSPeer< Handler, SSLWSPeer< 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 59 of file BaseWSPeer.h.

◆ cr_

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

Definition at line 60 of file BaseWSPeer.h.

◆ timer_

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

Definition at line 61 of file BaseWSPeer.h.

◆ close_on_timer_

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

Definition at line 62 of file BaseWSPeer.h.

◆ ping_active_

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

Definition at line 63 of file BaseWSPeer.h.

◆ payload_

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

Definition at line 64 of file BaseWSPeer.h.

◆ ec_

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

Definition at line 65 of file BaseWSPeer.h.

◆ control_callback_

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

Definition at line 68 of file BaseWSPeer.h.

◆ port_

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

Definition at line 45 of file BasePeer.h.

◆ handler_

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

Definition at line 46 of file BasePeer.h.

◆ remote_address_

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

Definition at line 47 of file BasePeer.h.

◆ sink_

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

Definition at line 48 of file BasePeer.h.

◆ j_

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

Definition at line 49 of file BasePeer.h.

◆ work_

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

Definition at line 51 of file BasePeer.h.

◆ strand_

boost::asio::strand<boost::asio::executor> ripple::BasePeer< Handler, SSLWSPeer< 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.