rippled
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
AutoSocket Class Reference
Collaboration diagram for AutoSocket:
Collaboration graph
[legend]

Public Types

using ssl_socket = boost::asio::ssl::stream< boost::asio::ip::tcp::socket >
 
using endpoint_type = boost::asio::ip::tcp::socket::endpoint_type
 
using socket_ptr = std::unique_ptr< ssl_socket >
 
using plain_socket = ssl_socket::next_layer_type
 
using lowest_layer_type = ssl_socket::lowest_layer_type
 
using handshake_type = ssl_socket::handshake_type
 
using error_code = boost::system::error_code
 
using callback = std::function< void(error_code)>
 

Public Member Functions

 AutoSocket (boost::asio::io_service &s, boost::asio::ssl::context &c, bool secureOnly, bool plainOnly)
 
 AutoSocket (boost::asio::io_service &s, boost::asio::ssl::context &c)
 
bool isSecure ()
 
ssl_socketSSLSocket ()
 
plain_socketPlainSocket ()
 
beast::IP::Endpoint local_endpoint ()
 
beast::IP::Endpoint remote_endpoint ()
 
lowest_layer_typelowest_layer ()
 
void swap (AutoSocket &s) noexcept
 
boost::system::error_code cancel (boost::system::error_code &ec)
 
void async_handshake (handshake_type type, callback cbFunc)
 
template<typename ShutdownHandler >
void async_shutdown (ShutdownHandler handler)
 
template<typename Seq , typename Handler >
void async_read_some (const Seq &buffers, Handler handler)
 
template<typename Seq , typename Condition , typename Handler >
void async_read_until (const Seq &buffers, Condition condition, Handler handler)
 
template<typename Allocator , typename Handler >
void async_read_until (boost::asio::basic_streambuf< Allocator > &buffers, std::string const &delim, Handler handler)
 
template<typename Allocator , typename MatchCondition , typename Handler >
void async_read_until (boost::asio::basic_streambuf< Allocator > &buffers, MatchCondition cond, Handler handler)
 
template<typename Buf , typename Handler >
void async_write (const Buf &buffers, Handler handler)
 
template<typename Allocator , typename Handler >
void async_write (boost::asio::basic_streambuf< Allocator > &buffers, Handler handler)
 
template<typename Buf , typename Condition , typename Handler >
void async_read (const Buf &buffers, Condition cond, Handler handler)
 
template<typename Allocator , typename Condition , typename Handler >
void async_read (boost::asio::basic_streambuf< Allocator > &buffers, Condition cond, Handler handler)
 
template<typename Buf , typename Handler >
void async_read (const Buf &buffers, Handler handler)
 
template<typename Seq , typename Handler >
void async_write_some (const Seq &buffers, Handler handler)
 

Protected Member Functions

void handle_autodetect (callback cbFunc, const error_code &ec, size_t bytesTransferred)
 

Private Attributes

socket_ptr mSocket
 
bool mSecure
 
std::vector< char > mBuffer
 
beast::Journal j_
 

Detailed Description

Definition at line 35 of file AutoSocket.h.

Member Typedef Documentation

◆ ssl_socket

using AutoSocket::ssl_socket = boost::asio::ssl::stream<boost::asio::ip::tcp::socket>

Definition at line 38 of file AutoSocket.h.

◆ endpoint_type

using AutoSocket::endpoint_type = boost::asio::ip::tcp::socket::endpoint_type

Definition at line 39 of file AutoSocket.h.

◆ socket_ptr

Definition at line 40 of file AutoSocket.h.

◆ plain_socket

using AutoSocket::plain_socket = ssl_socket::next_layer_type

Definition at line 41 of file AutoSocket.h.

◆ lowest_layer_type

using AutoSocket::lowest_layer_type = ssl_socket::lowest_layer_type

Definition at line 42 of file AutoSocket.h.

◆ handshake_type

using AutoSocket::handshake_type = ssl_socket::handshake_type

Definition at line 43 of file AutoSocket.h.

◆ error_code

using AutoSocket::error_code = boost::system::error_code

Definition at line 44 of file AutoSocket.h.

◆ callback

Definition at line 45 of file AutoSocket.h.

Constructor & Destructor Documentation

◆ AutoSocket() [1/2]

AutoSocket::AutoSocket ( boost::asio::io_service &  s,
boost::asio::ssl::context &  c,
bool  secureOnly,
bool  plainOnly 
)

Definition at line 48 of file AutoSocket.h.

◆ AutoSocket() [2/2]

AutoSocket::AutoSocket ( boost::asio::io_service &  s,
boost::asio::ssl::context &  c 
)

Definition at line 60 of file AutoSocket.h.

Member Function Documentation

◆ isSecure()

bool AutoSocket::isSecure ( )

Definition at line 66 of file AutoSocket.h.

◆ SSLSocket()

ssl_socket& AutoSocket::SSLSocket ( )

Definition at line 71 of file AutoSocket.h.

◆ PlainSocket()

plain_socket& AutoSocket::PlainSocket ( )

Definition at line 76 of file AutoSocket.h.

◆ local_endpoint()

beast::IP::Endpoint AutoSocket::local_endpoint ( )

Definition at line 82 of file AutoSocket.h.

◆ remote_endpoint()

beast::IP::Endpoint AutoSocket::remote_endpoint ( )

Definition at line 88 of file AutoSocket.h.

◆ lowest_layer()

lowest_layer_type& AutoSocket::lowest_layer ( )

Definition at line 94 of file AutoSocket.h.

◆ swap()

void AutoSocket::swap ( AutoSocket s)
noexcept

Definition at line 100 of file AutoSocket.h.

◆ cancel()

boost::system::error_code AutoSocket::cancel ( boost::system::error_code &  ec)

Definition at line 108 of file AutoSocket.h.

◆ async_handshake()

void AutoSocket::async_handshake ( handshake_type  type,
callback  cbFunc 
)

Definition at line 114 of file AutoSocket.h.

◆ async_shutdown()

template<typename ShutdownHandler >
void AutoSocket::async_shutdown ( ShutdownHandler  handler)

Definition at line 147 of file AutoSocket.h.

◆ async_read_some()

template<typename Seq , typename Handler >
void AutoSocket::async_read_some ( const Seq &  buffers,
Handler  handler 
)

Definition at line 170 of file AutoSocket.h.

◆ async_read_until() [1/3]

template<typename Seq , typename Condition , typename Handler >
void AutoSocket::async_read_until ( const Seq &  buffers,
Condition  condition,
Handler  handler 
)

Definition at line 180 of file AutoSocket.h.

◆ async_read_until() [2/3]

template<typename Allocator , typename Handler >
void AutoSocket::async_read_until ( boost::asio::basic_streambuf< Allocator > &  buffers,
std::string const &  delim,
Handler  handler 
)

Definition at line 192 of file AutoSocket.h.

◆ async_read_until() [3/3]

template<typename Allocator , typename MatchCondition , typename Handler >
void AutoSocket::async_read_until ( boost::asio::basic_streambuf< Allocator > &  buffers,
MatchCondition  cond,
Handler  handler 
)

Definition at line 206 of file AutoSocket.h.

◆ async_write() [1/2]

template<typename Buf , typename Handler >
void AutoSocket::async_write ( const Buf &  buffers,
Handler  handler 
)

Definition at line 220 of file AutoSocket.h.

◆ async_write() [2/2]

template<typename Allocator , typename Handler >
void AutoSocket::async_write ( boost::asio::basic_streambuf< Allocator > &  buffers,
Handler  handler 
)

Definition at line 230 of file AutoSocket.h.

◆ async_read() [1/3]

template<typename Buf , typename Condition , typename Handler >
void AutoSocket::async_read ( const Buf &  buffers,
Condition  cond,
Handler  handler 
)

Definition at line 242 of file AutoSocket.h.

◆ async_read() [2/3]

template<typename Allocator , typename Condition , typename Handler >
void AutoSocket::async_read ( boost::asio::basic_streambuf< Allocator > &  buffers,
Condition  cond,
Handler  handler 
)

Definition at line 252 of file AutoSocket.h.

◆ async_read() [3/3]

template<typename Buf , typename Handler >
void AutoSocket::async_read ( const Buf &  buffers,
Handler  handler 
)

Definition at line 265 of file AutoSocket.h.

◆ async_write_some()

template<typename Seq , typename Handler >
void AutoSocket::async_write_some ( const Seq &  buffers,
Handler  handler 
)

Definition at line 275 of file AutoSocket.h.

◆ handle_autodetect()

void AutoSocket::handle_autodetect ( callback  cbFunc,
const error_code ec,
size_t  bytesTransferred 
)
protected

Definition at line 285 of file AutoSocket.h.

Member Data Documentation

◆ mSocket

socket_ptr AutoSocket::mSocket
private

Definition at line 321 of file AutoSocket.h.

◆ mSecure

bool AutoSocket::mSecure
private

Definition at line 322 of file AutoSocket.h.

◆ mBuffer

std::vector<char> AutoSocket::mBuffer
private

Definition at line 323 of file AutoSocket.h.

◆ j_

beast::Journal AutoSocket::j_
private

Definition at line 324 of file AutoSocket.h.