MySQL 9.1.0
Source Code Documentation
MysqlRoutingXConnection Class Reference

#include <x_connection.h>

Inheritance diagram for MysqlRoutingXConnection:
[legend]

Public Types

enum class  Function {
  kClientRecvCmd , kTlsAcceptInit , kTlsAccept , kTlsAcceptFinalize ,
  kServerInitTls , kServerRecvSwitchTlsResponse , kTlsConnectInit , kTlsConnect ,
  kForwardTlsInit , kForwardTlsClientToServer , kForwardTlsServerToClient , kServerSendCheckCaps ,
  kServerRecvCheckCapsResponse , kClientCapGet , kServerRecvCapGetResponse , kServerRecvCapGetResponseForward ,
  kServerRecvCapGetResponseForwardLast , kServerRecvSwitchTlsResponsePassthrough , kServerRecvSwitchTlsResponsePassthroughForward , kServerRecvSwitchTlsResponsePassthroughForwardLast ,
  kServerRecvSwitchTlsResponsePassthroughForwardOk , kClientCapSet , kServerRecvCapSetResponse , kServerRecvCapSetResponseForward ,
  kServerRecvCapSetResponseForwardLast , kClientSessAuthStart , kServerRecvAuthResponse , kServerRecvAuthResponseForward ,
  kServerRecvAuthResponseContinue , kServerRecvAuthResponseForwardLast , kClientRecvAuthContinue , kClientStmtExecute ,
  kServerRecvStmtExecuteResponse , kServerRecvStmtExecuteResponseForward , kServerRecvStmtExecuteResponseForwardLast , kClientCrudFind ,
  kServerRecvCrudFindResponse , kServerRecvCrudFindResponseForward , kServerRecvCrudFindResponseForwardLast , kClientCrudDelete ,
  kServerRecvCrudDeleteResponse , kServerRecvCrudDeleteResponseForward , kServerRecvCrudDeleteResponseForwardLast , kClientCrudInsert ,
  kServerRecvCrudInsertResponse , kServerRecvCrudInsertResponseForward , kServerRecvCrudInsertResponseForwardLast , kClientCrudUpdate ,
  kServerRecvCrudUpdateResponse , kServerRecvCrudUpdateResponseForward , kServerRecvCrudUpdateResponseForwardLast , kClientPreparePrepare ,
  kServerRecvPreparePrepareResponse , kServerRecvPreparePrepareResponseForward , kServerRecvPreparePrepareResponseForwardLast , kClientPrepareDeallocate ,
  kServerRecvPrepareDeallocateResponse , kServerRecvPrepareDeallocateResponseForward , kServerRecvPrepareDeallocateResponseForwardLast , kClientPrepareExecute ,
  kServerRecvPrepareExecuteResponse , kServerRecvPrepareExecuteResponseForward , kServerRecvPrepareExecuteResponseForwardLast , kClientExpectOpen ,
  kServerRecvExpectOpenResponse , kServerRecvExpectOpenResponseForward , kServerRecvExpectOpenResponseForwardLast , kClientExpectClose ,
  kServerRecvExpectCloseResponse , kServerRecvExpectCloseResponseForward , kServerRecvExpectCloseResponseForwardLast , kClientCrudCreateView ,
  kServerRecvCrudCreateViewResponse , kServerRecvCrudCreateViewResponseForward , kServerRecvCrudCreateViewResponseForwardLast , kClientCrudModifyView ,
  kServerRecvCrudModifyViewResponse , kServerRecvCrudModifyViewResponseForward , kServerRecvCrudModifyViewResponseForwardLast , kClientCrudDropView ,
  kServerRecvCrudDropViewResponse , kServerRecvCrudDropViewResponseForward , kServerRecvCrudDropViewResponseForwardLast , kClientCursorOpen ,
  kServerRecvCursorOpenResponse , kServerRecvCursorOpenResponseForward , kServerRecvCursorOpenResponseForwardLast , kClientCursorFetch ,
  kServerRecvCursorFetchResponse , kServerRecvCursorFetchResponseForward , kServerRecvCursorFetchResponseForwardLast , kClientCursorClose ,
  kServerRecvCursorCloseResponse , kServerRecvCursorCloseResponseForward , kServerRecvCursorCloseResponseForwardLast , kClientSessionClose ,
  kServerRecvSessionCloseResponse , kServerRecvSessionCloseResponseForward , kServerRecvSessionCloseResponseForwardLast , kClientSessionReset ,
  kServerRecvSessionResetResponse , kServerRecvSessionResetResponseForward , kServerRecvSessionResetResponseForwardLast , kConnect ,
  kWaitClientClose , kFinish
}
 
enum class  ForwardResult {
  kWantRecvSource , kWantSendSource , kWantRecvDestination , kWantSendDestination ,
  kFinished
}
 
using connector_type = Connector< std::unique_ptr< ConnectionBase > >
 
- Public Types inherited from MySQLRoutingConnectionBase
using clock_type = std::chrono::system_clock
 
using time_point_type = clock_type::time_point
 

Public Member Functions

std::shared_ptr< MysqlRoutingXConnectiongetptr ()
 
SslMode source_ssl_mode () const
 
SslMode dest_ssl_mode () const
 
net::impl::socket::native_handle_type get_client_fd () const override
 
std::string get_client_address () const override
 Returns address of client which connected to router. More...
 
std::string get_server_address () const override
 Returns address of server to which connection is established. More...
 
void disconnect () override
 
void call_next_function (Function next)
 
void send_server_failed (std::error_code ec)
 
void recv_server_failed (std::error_code ec)
 
void send_client_failed (std::error_code ec)
 
void recv_client_failed (std::error_code ec)
 
void client_socket_failed (std::error_code ec)
 
void server_socket_failed (std::error_code ec)
 
void async_send_client (Function next)
 
void async_recv_client (Function next)
 
void async_send_server (Function next)
 
void async_recv_server (Function next)
 
void async_run ()
 
void wait_client_close ()
 
void finish ()
 
void server_tls_shutdown ()
 
void client_tls_shutdown ()
 
void done ()
 
stdx::expected< void, std::error_code > forward_tls (Channel &src_channel, Channel &dst_channel)
 
void forward_tls_client_to_server ()
 
void forward_tls_server_to_client ()
 
void forward_tls_init ()
 
stdx::expected< ForwardResult, std::error_code > forward_frame_from_client_to_server ()
 
stdx::expected< ForwardResult, std::error_code > forward_frame_from_server_to_client ()
 
void forward_client_to_server (Function this_func, Function next_func)
 
void forward_server_to_client (Function this_func, Function next_func)
 
void async_send_client_buffer (net::const_buffer send_buf, Function next)
 
void async_send_server_buffer (net::const_buffer send_buf, Function next)
 
void client_send_server_greeting_from_router ()
 
void server_recv_server_greeting_from_server ()
 
void connect ()
 
void server_send_switch_to_tls ()
 
void server_send_check_caps ()
 
void server_recv_check_caps_response ()
 
void tls_accept_init ()
 
void tls_accept ()
 accept a TLS handshake. More...
 
void tls_accept_finalize ()
 
void server_init_tls ()
 
void server_recv_switch_tls_response ()
 
void tls_connect_init ()
 
void tls_connect ()
 connect server_channel to a TLS server. More...
 
void client_con_close ()
 
void client_recv_cmd ()
 
void client_cap_get ()
 client wants to get the capabilities of the server. More...
 
void server_recv_cap_get_response ()
 
void server_recv_cap_get_response_forward ()
 
void server_recv_cap_get_response_forward_last ()
 
void client_cap_set ()
 client wants to set the capabilities. More...
 
void server_recv_cap_set_response ()
 
void server_recv_cap_set_response_forward ()
 
void server_recv_cap_set_response_forward_last ()
 
void server_recv_switch_tls_response_passthrough ()
 
void server_recv_switch_tls_response_passthrough_forward ()
 
void server_recv_switch_tls_response_passthrough_forward_last ()
 
void server_recv_switch_tls_response_passthrough_forward_ok ()
 
void passthrough_tls_init ()
 
void client_sess_auth_start ()
 
void client_recv_auth_continue ()
 
void server_recv_auth_response ()
 
void server_recv_auth_response_forward ()
 
void server_recv_auth_response_continue ()
 
void server_recv_auth_response_forward_last ()
 
void client_stmt_execute ()
 
void server_recv_stmt_execute_response ()
 
void server_recv_stmt_execute_response_forward ()
 
void server_recv_stmt_execute_response_forward_last ()
 
void client_crud_find ()
 
void server_recv_crud_find_response ()
 
void server_recv_crud_find_response_forward ()
 
void server_recv_crud_find_response_forward_last ()
 
void client_crud_delete ()
 
void server_recv_crud_delete_response ()
 
void server_recv_crud_delete_response_forward ()
 
void server_recv_crud_delete_response_forward_last ()
 
void client_crud_insert ()
 
void server_recv_crud_insert_response ()
 
void server_recv_crud_insert_response_forward ()
 
void server_recv_crud_insert_response_forward_last ()
 
void client_crud_update ()
 
void server_recv_crud_update_response ()
 
void server_recv_crud_update_response_forward ()
 
void server_recv_crud_update_response_forward_last ()
 
void client_prepare_prepare ()
 
void server_recv_prepare_prepare_response ()
 
void server_recv_prepare_prepare_response_forward ()
 
void server_recv_prepare_prepare_response_forward_last ()
 
void client_prepare_deallocate ()
 
void server_recv_prepare_deallocate_response ()
 
void server_recv_prepare_deallocate_response_forward ()
 
void server_recv_prepare_deallocate_response_forward_last ()
 
void client_prepare_execute ()
 
void server_recv_prepare_execute_response ()
 
void server_recv_prepare_execute_response_forward ()
 
void server_recv_prepare_execute_response_forward_last ()
 
void client_expect_open ()
 
void server_recv_expect_open_response ()
 
void server_recv_expect_open_response_forward ()
 
void server_recv_expect_open_response_forward_last ()
 
void client_expect_close ()
 
void server_recv_expect_close_response ()
 
void server_recv_expect_close_response_forward ()
 
void server_recv_expect_close_response_forward_last ()
 
void client_crud_create_view ()
 
void server_recv_crud_create_view_response ()
 
void server_recv_crud_create_view_response_forward ()
 
void server_recv_crud_create_view_response_forward_last ()
 
void client_crud_modify_view ()
 
void server_recv_crud_modify_view_response ()
 
void server_recv_crud_modify_view_response_forward ()
 
void server_recv_crud_modify_view_response_forward_last ()
 
void client_crud_drop_view ()
 
void server_recv_crud_drop_view_response ()
 
void server_recv_crud_drop_view_response_forward ()
 
void server_recv_crud_drop_view_response_forward_last ()
 
void client_cursor_open ()
 
void server_recv_cursor_open_response ()
 
void server_recv_cursor_open_response_forward ()
 
void server_recv_cursor_open_response_forward_last ()
 
void client_cursor_fetch ()
 
void server_recv_cursor_fetch_response ()
 
void server_recv_cursor_fetch_response_forward ()
 
void server_recv_cursor_fetch_response_forward_last ()
 
void client_cursor_close ()
 
void server_recv_cursor_close_response ()
 
void server_recv_cursor_close_response_forward ()
 
void server_recv_cursor_close_response_forward_last ()
 
void client_session_close ()
 
void server_recv_session_close_response ()
 
void server_recv_session_close_response_forward ()
 
void server_recv_session_close_response_forward_last ()
 
void client_session_reset ()
 
void server_recv_session_reset_response ()
 
void server_recv_session_reset_response_forward ()
 
void server_recv_session_reset_response_forward_last ()
 
ClientSideConnection::protocol_state_typeclient_protocol ()
 
const ClientSideConnection::protocol_state_typeclient_protocol () const
 
ServerSideConnection::protocol_state_typeserver_protocol ()
 
const ServerSideConnection::protocol_state_typeserver_protocol () const
 
ClientSideConnectionclient_conn ()
 
const ClientSideConnectionclient_conn () const
 
ServerSideConnectionserver_conn ()
 
const ServerSideConnectionserver_conn () const
 
std::string get_destination_id () const override
 
std::optional< net::ip::tcp::endpointdestination_endpoint () const override
 
- Public Member Functions inherited from MySQLRoutingConnectionBase
 MySQLRoutingConnectionBase (MySQLRoutingContext &context, std::function< void(MySQLRoutingConnectionBase *)> remove_callback)
 
virtual ~MySQLRoutingConnectionBase ()=default
 
MySQLRoutingContextcontext ()
 
const MySQLRoutingContextcontext () const
 
virtual std::string read_only_destination_id () const
 
virtual std::string read_write_destination_id () const
 
virtual std::optional< net::ip::tcp::endpointread_only_destination_endpoint () const
 
virtual std::optional< net::ip::tcp::endpointread_write_destination_endpoint () const
 
std::size_t get_bytes_up () const
 
std::size_t get_bytes_down () const
 
time_point_type get_started () const
 
time_point_type get_connected_to_server () const
 
time_point_type get_last_sent_to_server () const
 
time_point_type get_last_received_from_server () const
 
Stats get_stats () const
 
void transfered_to_server (size_t bytes)
 
void transfered_to_client (size_t bytes)
 
void disassociate ()
 
void accepted ()
 
virtual void connected ()
 
template<class F >
auto disconnect_request (F &&f)
 
bool disconnect_requested () const
 

Static Public Member Functions

template<typename... Args>
static std::shared_ptr< MysqlRoutingXConnectioncreate (Args &&... args)
 
static stdx::expected< size_t, std::error_code > encode_error_packet (std::vector< uint8_t > &error_frame, uint16_t error_code, const std::string &msg, const std::string &sql_state="HY000", Mysqlx::Error::Severity severity=Mysqlx::Error::ERROR)
 

Private Types

using ClientSideConnection = TlsSwitchableClientConnection< XProtocolState >
 
using ServerSideConnection = TlsSwitchableConnection< XProtocolState >
 
using clock_type = std::chrono::steady_clock
 

Private Member Functions

 MysqlRoutingXConnection (MySQLRoutingContext &context, RouteDestination *route_destination, std::unique_ptr< ConnectionBase > client_connection, std::unique_ptr< RoutingConnectionBase > client_routing_connection, std::function< void(MySQLRoutingConnectionBase *)> remove_callback)
 
connector_typeconnector ()
 
const connector_typeconnector () const
 

Private Attributes

int active_work_ {0}
 
clock_type::time_point started_ {clock_type::now()}
 
clock_type::time_point last_trace_ {clock_type::now()}
 
bool greeting_from_router_ {true}
 
RouteDestinationroute_destination_
 
Destinations destinations_
 
connector_type connector_
 
ClientSideConnection client_conn_
 
ServerSideConnection server_conn_
 

Additional Inherited Members

- Protected Member Functions inherited from MySQLRoutingConnectionBase
void log_connection_summary ()
 
- Protected Attributes inherited from MySQLRoutingConnectionBase
MySQLRoutingContextcontext_
 wrapper for common data used by all routing threads More...
 
std::function< void(MySQLRoutingConnectionBase *)> remove_callback_
 callback that is called when thread of execution completes More...
 
Monitor< Statsstats_ {{}}
 
Monitor< bool > disconnect_ {{}}
 

Member Typedef Documentation

◆ ClientSideConnection

◆ clock_type

using MysqlRoutingXConnection::clock_type = std::chrono::steady_clock
private

◆ connector_type

◆ ServerSideConnection

Member Enumeration Documentation

◆ ForwardResult

Enumerator
kWantRecvSource 
kWantSendSource 
kWantRecvDestination 
kWantSendDestination 
kFinished 

◆ Function

Enumerator
kClientRecvCmd 
kTlsAcceptInit 
kTlsAccept 
kTlsAcceptFinalize 
kServerInitTls 
kServerRecvSwitchTlsResponse 
kTlsConnectInit 
kTlsConnect 
kForwardTlsInit 
kForwardTlsClientToServer 
kForwardTlsServerToClient 
kServerSendCheckCaps 
kServerRecvCheckCapsResponse 
kClientCapGet 
kServerRecvCapGetResponse 
kServerRecvCapGetResponseForward 
kServerRecvCapGetResponseForwardLast 
kServerRecvSwitchTlsResponsePassthrough 
kServerRecvSwitchTlsResponsePassthroughForward 
kServerRecvSwitchTlsResponsePassthroughForwardLast 
kServerRecvSwitchTlsResponsePassthroughForwardOk 
kClientCapSet 
kServerRecvCapSetResponse 
kServerRecvCapSetResponseForward 
kServerRecvCapSetResponseForwardLast 
kClientSessAuthStart 
kServerRecvAuthResponse 
kServerRecvAuthResponseForward 
kServerRecvAuthResponseContinue 
kServerRecvAuthResponseForwardLast 
kClientRecvAuthContinue 
kClientStmtExecute 
kServerRecvStmtExecuteResponse 
kServerRecvStmtExecuteResponseForward 
kServerRecvStmtExecuteResponseForwardLast 
kClientCrudFind 
kServerRecvCrudFindResponse 
kServerRecvCrudFindResponseForward 
kServerRecvCrudFindResponseForwardLast 
kClientCrudDelete 
kServerRecvCrudDeleteResponse 
kServerRecvCrudDeleteResponseForward 
kServerRecvCrudDeleteResponseForwardLast 
kClientCrudInsert 
kServerRecvCrudInsertResponse 
kServerRecvCrudInsertResponseForward 
kServerRecvCrudInsertResponseForwardLast 
kClientCrudUpdate 
kServerRecvCrudUpdateResponse 
kServerRecvCrudUpdateResponseForward 
kServerRecvCrudUpdateResponseForwardLast 
kClientPreparePrepare 
kServerRecvPreparePrepareResponse 
kServerRecvPreparePrepareResponseForward 
kServerRecvPreparePrepareResponseForwardLast 
kClientPrepareDeallocate 
kServerRecvPrepareDeallocateResponse 
kServerRecvPrepareDeallocateResponseForward 
kServerRecvPrepareDeallocateResponseForwardLast 
kClientPrepareExecute 
kServerRecvPrepareExecuteResponse 
kServerRecvPrepareExecuteResponseForward 
kServerRecvPrepareExecuteResponseForwardLast 
kClientExpectOpen 
kServerRecvExpectOpenResponse 
kServerRecvExpectOpenResponseForward 
kServerRecvExpectOpenResponseForwardLast 
kClientExpectClose 
kServerRecvExpectCloseResponse 
kServerRecvExpectCloseResponseForward 
kServerRecvExpectCloseResponseForwardLast 
kClientCrudCreateView 
kServerRecvCrudCreateViewResponse 
kServerRecvCrudCreateViewResponseForward 
kServerRecvCrudCreateViewResponseForwardLast 
kClientCrudModifyView 
kServerRecvCrudModifyViewResponse 
kServerRecvCrudModifyViewResponseForward 
kServerRecvCrudModifyViewResponseForwardLast 
kClientCrudDropView 
kServerRecvCrudDropViewResponse 
kServerRecvCrudDropViewResponseForward 
kServerRecvCrudDropViewResponseForwardLast 
kClientCursorOpen 
kServerRecvCursorOpenResponse 
kServerRecvCursorOpenResponseForward 
kServerRecvCursorOpenResponseForwardLast 
kClientCursorFetch 
kServerRecvCursorFetchResponse 
kServerRecvCursorFetchResponseForward 
kServerRecvCursorFetchResponseForwardLast 
kClientCursorClose 
kServerRecvCursorCloseResponse 
kServerRecvCursorCloseResponseForward 
kServerRecvCursorCloseResponseForwardLast 
kClientSessionClose 
kServerRecvSessionCloseResponse 
kServerRecvSessionCloseResponseForward 
kServerRecvSessionCloseResponseForwardLast 
kClientSessionReset 
kServerRecvSessionResetResponse 
kServerRecvSessionResetResponseForward 
kServerRecvSessionResetResponseForwardLast 
kConnect 
kWaitClientClose 
kFinish 

Constructor & Destructor Documentation

◆ MysqlRoutingXConnection()

MysqlRoutingXConnection::MysqlRoutingXConnection ( MySQLRoutingContext context,
RouteDestination route_destination,
std::unique_ptr< ConnectionBase client_connection,
std::unique_ptr< RoutingConnectionBase client_routing_connection,
std::function< void(MySQLRoutingConnectionBase *)>  remove_callback 
)
inlineprivate

Member Function Documentation

◆ async_recv_client()

void MysqlRoutingXConnection::async_recv_client ( Function  next)

◆ async_recv_server()

void MysqlRoutingXConnection::async_recv_server ( Function  next)

◆ async_run()

void MysqlRoutingXConnection::async_run ( )

◆ async_send_client()

void MysqlRoutingXConnection::async_send_client ( Function  next)

◆ async_send_client_buffer()

void MysqlRoutingXConnection::async_send_client_buffer ( net::const_buffer  send_buf,
Function  next 
)

◆ async_send_server()

void MysqlRoutingXConnection::async_send_server ( Function  next)

◆ async_send_server_buffer()

void MysqlRoutingXConnection::async_send_server_buffer ( net::const_buffer  send_buf,
Function  next 
)

◆ call_next_function()

void MysqlRoutingXConnection::call_next_function ( Function  next)
inline

◆ client_cap_get()

void MysqlRoutingXConnection::client_cap_get ( )

client wants to get the capabilities of the server.

send back the router's caps.

◆ client_cap_set()

void MysqlRoutingXConnection::client_cap_set ( )

client wants to set the capabilities.

send back the router's caps.

◆ client_con_close()

void MysqlRoutingXConnection::client_con_close ( )

◆ client_conn() [1/2]

ClientSideConnection & MysqlRoutingXConnection::client_conn ( )
inline

◆ client_conn() [2/2]

const ClientSideConnection & MysqlRoutingXConnection::client_conn ( ) const
inline

◆ client_crud_create_view()

void MysqlRoutingXConnection::client_crud_create_view ( )

◆ client_crud_delete()

void MysqlRoutingXConnection::client_crud_delete ( )

◆ client_crud_drop_view()

void MysqlRoutingXConnection::client_crud_drop_view ( )

◆ client_crud_find()

void MysqlRoutingXConnection::client_crud_find ( )

◆ client_crud_insert()

void MysqlRoutingXConnection::client_crud_insert ( )

◆ client_crud_modify_view()

void MysqlRoutingXConnection::client_crud_modify_view ( )

◆ client_crud_update()

void MysqlRoutingXConnection::client_crud_update ( )

◆ client_cursor_close()

void MysqlRoutingXConnection::client_cursor_close ( )

◆ client_cursor_fetch()

void MysqlRoutingXConnection::client_cursor_fetch ( )

◆ client_cursor_open()

void MysqlRoutingXConnection::client_cursor_open ( )

◆ client_expect_close()

void MysqlRoutingXConnection::client_expect_close ( )

◆ client_expect_open()

void MysqlRoutingXConnection::client_expect_open ( )

◆ client_prepare_deallocate()

void MysqlRoutingXConnection::client_prepare_deallocate ( )

◆ client_prepare_execute()

void MysqlRoutingXConnection::client_prepare_execute ( )

◆ client_prepare_prepare()

void MysqlRoutingXConnection::client_prepare_prepare ( )

◆ client_protocol() [1/2]

ClientSideConnection::protocol_state_type & MysqlRoutingXConnection::client_protocol ( )
inline

◆ client_protocol() [2/2]

const ClientSideConnection::protocol_state_type & MysqlRoutingXConnection::client_protocol ( ) const
inline

◆ client_recv_auth_continue()

void MysqlRoutingXConnection::client_recv_auth_continue ( )

◆ client_recv_cmd()

void MysqlRoutingXConnection::client_recv_cmd ( )

◆ client_send_server_greeting_from_router()

void MysqlRoutingXConnection::client_send_server_greeting_from_router ( )

◆ client_sess_auth_start()

void MysqlRoutingXConnection::client_sess_auth_start ( )

◆ client_session_close()

void MysqlRoutingXConnection::client_session_close ( )

◆ client_session_reset()

void MysqlRoutingXConnection::client_session_reset ( )

◆ client_socket_failed()

void MysqlRoutingXConnection::client_socket_failed ( std::error_code  ec)

◆ client_stmt_execute()

void MysqlRoutingXConnection::client_stmt_execute ( )

◆ client_tls_shutdown()

void MysqlRoutingXConnection::client_tls_shutdown ( )

◆ connect()

void MysqlRoutingXConnection::connect ( )

◆ connector() [1/2]

connector_type & MysqlRoutingXConnection::connector ( )
inlineprivate

◆ connector() [2/2]

const connector_type & MysqlRoutingXConnection::connector ( ) const
inlineprivate

◆ create()

template<typename... Args>
static std::shared_ptr< MysqlRoutingXConnection > MysqlRoutingXConnection::create ( Args &&...  args)
inlinestatic

◆ dest_ssl_mode()

SslMode MysqlRoutingXConnection::dest_ssl_mode ( ) const
inline

◆ destination_endpoint()

std::optional< net::ip::tcp::endpoint > MysqlRoutingXConnection::destination_endpoint ( ) const
inlineoverridevirtual

◆ disconnect()

void MysqlRoutingXConnection::disconnect ( )
overridevirtual

◆ done()

void MysqlRoutingXConnection::done ( )

◆ encode_error_packet()

stdx::expected< size_t, std::error_code > MysqlRoutingXConnection::encode_error_packet ( std::vector< uint8_t > &  error_frame,
uint16_t  error_code,
const std::string &  msg,
const std::string &  sql_state = "HY000",
Mysqlx::Error::Severity  severity = Mysqlx::Error::ERROR 
)
static

◆ finish()

void MysqlRoutingXConnection::finish ( )

◆ forward_client_to_server()

void MysqlRoutingXConnection::forward_client_to_server ( Function  this_func,
Function  next_func 
)

◆ forward_frame_from_client_to_server()

stdx::expected< MysqlRoutingXConnection::ForwardResult, std::error_code > MysqlRoutingXConnection::forward_frame_from_client_to_server ( )

◆ forward_frame_from_server_to_client()

stdx::expected< MysqlRoutingXConnection::ForwardResult, std::error_code > MysqlRoutingXConnection::forward_frame_from_server_to_client ( )

◆ forward_server_to_client()

void MysqlRoutingXConnection::forward_server_to_client ( Function  this_func,
Function  next_func 
)

◆ forward_tls()

stdx::expected< void, std::error_code > MysqlRoutingXConnection::forward_tls ( Channel src_channel,
Channel dst_channel 
)

◆ forward_tls_client_to_server()

void MysqlRoutingXConnection::forward_tls_client_to_server ( )

◆ forward_tls_init()

void MysqlRoutingXConnection::forward_tls_init ( )

◆ forward_tls_server_to_client()

void MysqlRoutingXConnection::forward_tls_server_to_client ( )

◆ get_client_address()

std::string MysqlRoutingXConnection::get_client_address ( ) const
inlineoverridevirtual

Returns address of client which connected to router.

Returns
address of client

Implements MySQLRoutingConnectionBase.

◆ get_client_fd()

net::impl::socket::native_handle_type MysqlRoutingXConnection::get_client_fd ( ) const
inlineoverridevirtual

◆ get_destination_id()

std::string MysqlRoutingXConnection::get_destination_id ( ) const
inlineoverridevirtual

◆ get_server_address()

std::string MysqlRoutingXConnection::get_server_address ( ) const
inlineoverridevirtual

Returns address of server to which connection is established.

Returns
address of server

Implements MySQLRoutingConnectionBase.

◆ getptr()

std::shared_ptr< MysqlRoutingXConnection > MysqlRoutingXConnection::getptr ( )
inline

◆ passthrough_tls_init()

void MysqlRoutingXConnection::passthrough_tls_init ( )

◆ recv_client_failed()

void MysqlRoutingXConnection::recv_client_failed ( std::error_code  ec)

◆ recv_server_failed()

void MysqlRoutingXConnection::recv_server_failed ( std::error_code  ec)

◆ send_client_failed()

void MysqlRoutingXConnection::send_client_failed ( std::error_code  ec)

◆ send_server_failed()

void MysqlRoutingXConnection::send_server_failed ( std::error_code  ec)

◆ server_conn() [1/2]

ServerSideConnection & MysqlRoutingXConnection::server_conn ( )
inline

◆ server_conn() [2/2]

const ServerSideConnection & MysqlRoutingXConnection::server_conn ( ) const
inline

◆ server_init_tls()

void MysqlRoutingXConnection::server_init_tls ( )

◆ server_protocol() [1/2]

ServerSideConnection::protocol_state_type & MysqlRoutingXConnection::server_protocol ( )
inline

◆ server_protocol() [2/2]

const ServerSideConnection::protocol_state_type & MysqlRoutingXConnection::server_protocol ( ) const
inline

◆ server_recv_auth_response()

void MysqlRoutingXConnection::server_recv_auth_response ( )

◆ server_recv_auth_response_continue()

void MysqlRoutingXConnection::server_recv_auth_response_continue ( )

◆ server_recv_auth_response_forward()

void MysqlRoutingXConnection::server_recv_auth_response_forward ( )

◆ server_recv_auth_response_forward_last()

void MysqlRoutingXConnection::server_recv_auth_response_forward_last ( )

◆ server_recv_cap_get_response()

void MysqlRoutingXConnection::server_recv_cap_get_response ( )

◆ server_recv_cap_get_response_forward()

void MysqlRoutingXConnection::server_recv_cap_get_response_forward ( )

◆ server_recv_cap_get_response_forward_last()

void MysqlRoutingXConnection::server_recv_cap_get_response_forward_last ( )

◆ server_recv_cap_set_response()

void MysqlRoutingXConnection::server_recv_cap_set_response ( )

◆ server_recv_cap_set_response_forward()

void MysqlRoutingXConnection::server_recv_cap_set_response_forward ( )

◆ server_recv_cap_set_response_forward_last()

void MysqlRoutingXConnection::server_recv_cap_set_response_forward_last ( )

◆ server_recv_check_caps_response()

void MysqlRoutingXConnection::server_recv_check_caps_response ( )

◆ server_recv_crud_create_view_response()

void MysqlRoutingXConnection::server_recv_crud_create_view_response ( )

◆ server_recv_crud_create_view_response_forward()

void MysqlRoutingXConnection::server_recv_crud_create_view_response_forward ( )

◆ server_recv_crud_create_view_response_forward_last()

void MysqlRoutingXConnection::server_recv_crud_create_view_response_forward_last ( )

◆ server_recv_crud_delete_response()

void MysqlRoutingXConnection::server_recv_crud_delete_response ( )

◆ server_recv_crud_delete_response_forward()

void MysqlRoutingXConnection::server_recv_crud_delete_response_forward ( )

◆ server_recv_crud_delete_response_forward_last()

void MysqlRoutingXConnection::server_recv_crud_delete_response_forward_last ( )

◆ server_recv_crud_drop_view_response()

void MysqlRoutingXConnection::server_recv_crud_drop_view_response ( )

◆ server_recv_crud_drop_view_response_forward()

void MysqlRoutingXConnection::server_recv_crud_drop_view_response_forward ( )

◆ server_recv_crud_drop_view_response_forward_last()

void MysqlRoutingXConnection::server_recv_crud_drop_view_response_forward_last ( )

◆ server_recv_crud_find_response()

void MysqlRoutingXConnection::server_recv_crud_find_response ( )

◆ server_recv_crud_find_response_forward()

void MysqlRoutingXConnection::server_recv_crud_find_response_forward ( )

◆ server_recv_crud_find_response_forward_last()

void MysqlRoutingXConnection::server_recv_crud_find_response_forward_last ( )

◆ server_recv_crud_insert_response()

void MysqlRoutingXConnection::server_recv_crud_insert_response ( )

◆ server_recv_crud_insert_response_forward()

void MysqlRoutingXConnection::server_recv_crud_insert_response_forward ( )

◆ server_recv_crud_insert_response_forward_last()

void MysqlRoutingXConnection::server_recv_crud_insert_response_forward_last ( )

◆ server_recv_crud_modify_view_response()

void MysqlRoutingXConnection::server_recv_crud_modify_view_response ( )

◆ server_recv_crud_modify_view_response_forward()

void MysqlRoutingXConnection::server_recv_crud_modify_view_response_forward ( )

◆ server_recv_crud_modify_view_response_forward_last()

void MysqlRoutingXConnection::server_recv_crud_modify_view_response_forward_last ( )

◆ server_recv_crud_update_response()

void MysqlRoutingXConnection::server_recv_crud_update_response ( )

◆ server_recv_crud_update_response_forward()

void MysqlRoutingXConnection::server_recv_crud_update_response_forward ( )

◆ server_recv_crud_update_response_forward_last()

void MysqlRoutingXConnection::server_recv_crud_update_response_forward_last ( )

◆ server_recv_cursor_close_response()

void MysqlRoutingXConnection::server_recv_cursor_close_response ( )

◆ server_recv_cursor_close_response_forward()

void MysqlRoutingXConnection::server_recv_cursor_close_response_forward ( )

◆ server_recv_cursor_close_response_forward_last()

void MysqlRoutingXConnection::server_recv_cursor_close_response_forward_last ( )

◆ server_recv_cursor_fetch_response()

void MysqlRoutingXConnection::server_recv_cursor_fetch_response ( )

◆ server_recv_cursor_fetch_response_forward()

void MysqlRoutingXConnection::server_recv_cursor_fetch_response_forward ( )

◆ server_recv_cursor_fetch_response_forward_last()

void MysqlRoutingXConnection::server_recv_cursor_fetch_response_forward_last ( )

◆ server_recv_cursor_open_response()

void MysqlRoutingXConnection::server_recv_cursor_open_response ( )

◆ server_recv_cursor_open_response_forward()

void MysqlRoutingXConnection::server_recv_cursor_open_response_forward ( )

◆ server_recv_cursor_open_response_forward_last()

void MysqlRoutingXConnection::server_recv_cursor_open_response_forward_last ( )

◆ server_recv_expect_close_response()

void MysqlRoutingXConnection::server_recv_expect_close_response ( )

◆ server_recv_expect_close_response_forward()

void MysqlRoutingXConnection::server_recv_expect_close_response_forward ( )

◆ server_recv_expect_close_response_forward_last()

void MysqlRoutingXConnection::server_recv_expect_close_response_forward_last ( )

◆ server_recv_expect_open_response()

void MysqlRoutingXConnection::server_recv_expect_open_response ( )

◆ server_recv_expect_open_response_forward()

void MysqlRoutingXConnection::server_recv_expect_open_response_forward ( )

◆ server_recv_expect_open_response_forward_last()

void MysqlRoutingXConnection::server_recv_expect_open_response_forward_last ( )

◆ server_recv_prepare_deallocate_response()

void MysqlRoutingXConnection::server_recv_prepare_deallocate_response ( )

◆ server_recv_prepare_deallocate_response_forward()

void MysqlRoutingXConnection::server_recv_prepare_deallocate_response_forward ( )

◆ server_recv_prepare_deallocate_response_forward_last()

void MysqlRoutingXConnection::server_recv_prepare_deallocate_response_forward_last ( )

◆ server_recv_prepare_execute_response()

void MysqlRoutingXConnection::server_recv_prepare_execute_response ( )

◆ server_recv_prepare_execute_response_forward()

void MysqlRoutingXConnection::server_recv_prepare_execute_response_forward ( )

◆ server_recv_prepare_execute_response_forward_last()

void MysqlRoutingXConnection::server_recv_prepare_execute_response_forward_last ( )

◆ server_recv_prepare_prepare_response()

void MysqlRoutingXConnection::server_recv_prepare_prepare_response ( )

◆ server_recv_prepare_prepare_response_forward()

void MysqlRoutingXConnection::server_recv_prepare_prepare_response_forward ( )

◆ server_recv_prepare_prepare_response_forward_last()

void MysqlRoutingXConnection::server_recv_prepare_prepare_response_forward_last ( )

◆ server_recv_server_greeting_from_server()

void MysqlRoutingXConnection::server_recv_server_greeting_from_server ( )

◆ server_recv_session_close_response()

void MysqlRoutingXConnection::server_recv_session_close_response ( )

◆ server_recv_session_close_response_forward()

void MysqlRoutingXConnection::server_recv_session_close_response_forward ( )

◆ server_recv_session_close_response_forward_last()

void MysqlRoutingXConnection::server_recv_session_close_response_forward_last ( )

◆ server_recv_session_reset_response()

void MysqlRoutingXConnection::server_recv_session_reset_response ( )

◆ server_recv_session_reset_response_forward()

void MysqlRoutingXConnection::server_recv_session_reset_response_forward ( )

◆ server_recv_session_reset_response_forward_last()

void MysqlRoutingXConnection::server_recv_session_reset_response_forward_last ( )

◆ server_recv_stmt_execute_response()

void MysqlRoutingXConnection::server_recv_stmt_execute_response ( )

◆ server_recv_stmt_execute_response_forward()

void MysqlRoutingXConnection::server_recv_stmt_execute_response_forward ( )

◆ server_recv_stmt_execute_response_forward_last()

void MysqlRoutingXConnection::server_recv_stmt_execute_response_forward_last ( )

◆ server_recv_switch_tls_response()

void MysqlRoutingXConnection::server_recv_switch_tls_response ( )

◆ server_recv_switch_tls_response_passthrough()

void MysqlRoutingXConnection::server_recv_switch_tls_response_passthrough ( )

◆ server_recv_switch_tls_response_passthrough_forward()

void MysqlRoutingXConnection::server_recv_switch_tls_response_passthrough_forward ( )

◆ server_recv_switch_tls_response_passthrough_forward_last()

void MysqlRoutingXConnection::server_recv_switch_tls_response_passthrough_forward_last ( )

◆ server_recv_switch_tls_response_passthrough_forward_ok()

void MysqlRoutingXConnection::server_recv_switch_tls_response_passthrough_forward_ok ( )

◆ server_send_check_caps()

void MysqlRoutingXConnection::server_send_check_caps ( )

◆ server_send_switch_to_tls()

void MysqlRoutingXConnection::server_send_switch_to_tls ( )

◆ server_socket_failed()

void MysqlRoutingXConnection::server_socket_failed ( std::error_code  ec)

◆ server_tls_shutdown()

void MysqlRoutingXConnection::server_tls_shutdown ( )

◆ source_ssl_mode()

SslMode MysqlRoutingXConnection::source_ssl_mode ( ) const
inline

◆ tls_accept()

void MysqlRoutingXConnection::tls_accept ( )

accept a TLS handshake.

◆ tls_accept_finalize()

void MysqlRoutingXConnection::tls_accept_finalize ( )

◆ tls_accept_init()

void MysqlRoutingXConnection::tls_accept_init ( )

◆ tls_connect()

void MysqlRoutingXConnection::tls_connect ( )

connect server_channel to a TLS server.

◆ tls_connect_init()

void MysqlRoutingXConnection::tls_connect_init ( )

◆ wait_client_close()

void MysqlRoutingXConnection::wait_client_close ( )

Member Data Documentation

◆ active_work_

int MysqlRoutingXConnection::active_work_ {0}
private

◆ client_conn_

ClientSideConnection MysqlRoutingXConnection::client_conn_
private

◆ connector_

connector_type MysqlRoutingXConnection::connector_
private

◆ destinations_

Destinations MysqlRoutingXConnection::destinations_
private

◆ greeting_from_router_

bool MysqlRoutingXConnection::greeting_from_router_ {true}
private

◆ last_trace_

clock_type::time_point MysqlRoutingXConnection::last_trace_ {clock_type::now()}
private

◆ route_destination_

RouteDestination* MysqlRoutingXConnection::route_destination_
private

◆ server_conn_

ServerSideConnection MysqlRoutingXConnection::server_conn_
private

◆ started_

clock_type::time_point MysqlRoutingXConnection::started_ {clock_type::now()}
private

The documentation for this class was generated from the following files: