#pragma once #include #include #include #include #include #include #include #include #include namespace xrpl { template class SSLWSPeer : public BaseWSPeer>, public std::enable_shared_from_this> { friend class BasePeer; friend class BaseWSPeer; 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; using waitable_timer = boost::asio::basic_waitable_timer; std::unique_ptr stream_ptr_; boost::beast::websocket::stream ws_; public: template SSLWSPeer( Port const& port, Handler& handler, endpoint_type remote_endpoint, boost::beast::http::request&& request, std::unique_ptr&& stream_ptr, beast::Journal journal); }; //------------------------------------------------------------------------------ template template SSLWSPeer::SSLWSPeer( Port const& port, Handler& handler, endpoint_type remote_endpoint, boost::beast::http::request&& request, std::unique_ptr&& stream_ptr, beast::Journal journal) : BaseWSPeer( port, handler, stream_ptr->get_executor(), waitable_timer{stream_ptr->get_executor()}, remote_endpoint, std::move(request), journal) , stream_ptr_(std::move(stream_ptr)) , ws_(*stream_ptr_) { } } // namespace xrpl