MySQL 9.3.0
Source Code Documentation
ConnectorBase Class Reference

#include <connection.h>

Inheritance diagram for ConnectorBase:
[legend]

Public Types

enum class  Function { kInitDestination , kConnectFinish }
 

Public Member Functions

 ConnectorBase (net::io_context &io_ctx, MySQLRoutingContext &context, DestinationManager *destination_manager)
 
mysql_harness::DestinationSocketsocket ()
 
mysql_harness::DestinationEndpointendpoint ()
 
net::steady_timertimer ()
 
void connect_timed_out (bool v)
 
bool connect_timed_out () const
 
void destination_id (std::optional< mysql_harness::Destination > id)
 
std::optional< mysql_harness::Destinationdestination_id () const
 
std::string routing_source () const
 
void set_routing_source (std::string name)
 
const routing_guidelines::Server_infoserver_info () const
 
void on_connect_failure (std::function< void(const mysql_harness::Destination &, std::error_code)> func)
 
void on_connect_success (std::function< void(const mysql_harness::Destination &)> func)
 
void on_is_destination_good (std::function< bool(const mysql_harness::Destination &dest)> func)
 
bool is_destination_good (const mysql_harness::Destination &dest) const
 

Protected Member Functions

stdx::expected< void, std::error_code > resolve ()
 
stdx::expected< void, std::error_code > init_destination (routing_guidelines::Session_info session_info)
 
stdx::expected< void, std::error_code > init_endpoint ()
 
stdx::expected< void, std::error_code > next_endpoint ()
 
stdx::expected< void, std::error_code > next_destination ()
 
stdx::expected< void, std::error_code > connect_init ()
 
stdx::expected< void, std::error_code > try_connect ()
 
stdx::expected< void, std::error_code > connect_finish ()
 
stdx::expected< void, std::error_code > connected ()
 
stdx::expected< void, std::error_code > connect_failed (std::error_code ec)
 

Protected Attributes

net::io_contextio_ctx_
 
MySQLRoutingContextcontext_
 
net::ip::tcp::resolver resolver_ {io_ctx_}
 
mysql_harness::DestinationSocket server_sock_
 
mysql_harness::DestinationEndpoint server_endpoint_
 
routing_guidelines::Session_info session_info_
 
DestinationManagerdestination_manager_
 
std::unique_ptr< Destinationdestination_ {nullptr}
 
std::vector< mysql_harness::DestinationEndpointendpoints_
 
std::vector< mysql_harness::DestinationEndpoint >::iterator endpoints_it_
 
std::error_code last_ec_ {make_error_code(DestinationsErrc::kNotSet)}
 
Function func_ {Function::kInitDestination}
 
net::steady_timer connect_timer_ {io_ctx_}
 
bool connect_timed_out_ {false}
 
std::optional< mysql_harness::Destinationdestination_id_
 
std::function< void(const mysql_harness::Destination &, std::error_code)> on_connect_failure_
 
std::function< void(const mysql_harness::Destination &)> on_connect_success_
 
std::function< bool(const mysql_harness::Destination &)> on_is_destination_good_
 

Member Enumeration Documentation

◆ Function

enum class ConnectorBase::Function
strong
Enumerator
kInitDestination 
kConnectFinish 

Constructor & Destructor Documentation

◆ ConnectorBase()

ConnectorBase::ConnectorBase ( net::io_context io_ctx,
MySQLRoutingContext context,
DestinationManager destination_manager 
)
inline

Member Function Documentation

◆ connect_failed()

stdx::expected< void, std::error_code > ConnectorBase::connect_failed ( std::error_code  ec)
protected

◆ connect_finish()

stdx::expected< void, std::error_code > ConnectorBase::connect_finish ( )
protected

◆ connect_init()

stdx::expected< void, std::error_code > ConnectorBase::connect_init ( )
protected

◆ connect_timed_out() [1/2]

bool ConnectorBase::connect_timed_out ( ) const
inline

◆ connect_timed_out() [2/2]

void ConnectorBase::connect_timed_out ( bool  v)
inline

◆ connected()

stdx::expected< void, std::error_code > ConnectorBase::connected ( )
protected

◆ destination_id() [1/2]

std::optional< mysql_harness::Destination > ConnectorBase::destination_id ( ) const
inline

◆ destination_id() [2/2]

void ConnectorBase::destination_id ( std::optional< mysql_harness::Destination id)
inline

◆ endpoint()

mysql_harness::DestinationEndpoint & ConnectorBase::endpoint ( )
inline

◆ init_destination()

stdx::expected< void, std::error_code > ConnectorBase::init_destination ( routing_guidelines::Session_info  session_info)
protected

◆ init_endpoint()

stdx::expected< void, std::error_code > ConnectorBase::init_endpoint ( )
protected

◆ is_destination_good()

bool ConnectorBase::is_destination_good ( const mysql_harness::Destination dest) const
inline

◆ next_destination()

stdx::expected< void, std::error_code > ConnectorBase::next_destination ( )
protected

◆ next_endpoint()

stdx::expected< void, std::error_code > ConnectorBase::next_endpoint ( )
protected

◆ on_connect_failure()

void ConnectorBase::on_connect_failure ( std::function< void(const mysql_harness::Destination &, std::error_code)>  func)
inline

◆ on_connect_success()

void ConnectorBase::on_connect_success ( std::function< void(const mysql_harness::Destination &)>  func)
inline

◆ on_is_destination_good()

void ConnectorBase::on_is_destination_good ( std::function< bool(const mysql_harness::Destination &dest)>  func)
inline

◆ resolve()

stdx::expected< void, std::error_code > ConnectorBase::resolve ( )
protected

◆ routing_source()

std::string ConnectorBase::routing_source ( ) const
inline

◆ server_info()

const routing_guidelines::Server_info & ConnectorBase::server_info ( ) const
inline

◆ set_routing_source()

void ConnectorBase::set_routing_source ( std::string  name)
inline

◆ socket()

mysql_harness::DestinationSocket & ConnectorBase::socket ( )
inline

◆ timer()

net::steady_timer & ConnectorBase::timer ( )
inline

◆ try_connect()

stdx::expected< void, std::error_code > ConnectorBase::try_connect ( )
protected

Member Data Documentation

◆ connect_timed_out_

bool ConnectorBase::connect_timed_out_ {false}
protected

◆ connect_timer_

net::steady_timer ConnectorBase::connect_timer_ {io_ctx_}
protected

◆ context_

MySQLRoutingContext& ConnectorBase::context_
protected

◆ destination_

std::unique_ptr<Destination> ConnectorBase::destination_ {nullptr}
protected

◆ destination_id_

std::optional<mysql_harness::Destination> ConnectorBase::destination_id_
protected

◆ destination_manager_

DestinationManager* ConnectorBase::destination_manager_
protected

◆ endpoints_

std::vector<mysql_harness::DestinationEndpoint> ConnectorBase::endpoints_
protected

◆ endpoints_it_

std::vector<mysql_harness::DestinationEndpoint>::iterator ConnectorBase::endpoints_it_
protected

◆ func_

Function ConnectorBase::func_ {Function::kInitDestination}
protected

◆ io_ctx_

net::io_context& ConnectorBase::io_ctx_
protected

◆ last_ec_

std::error_code ConnectorBase::last_ec_ {make_error_code(DestinationsErrc::kNotSet)}
protected

◆ on_connect_failure_

std::function<void(const mysql_harness::Destination &, std::error_code)> ConnectorBase::on_connect_failure_
protected

◆ on_connect_success_

std::function<void(const mysql_harness::Destination &)> ConnectorBase::on_connect_success_
protected

◆ on_is_destination_good_

std::function<bool(const mysql_harness::Destination &)> ConnectorBase::on_is_destination_good_
protected

◆ resolver_

net::ip::tcp::resolver ConnectorBase::resolver_ {io_ctx_}
protected

◆ server_endpoint_

mysql_harness::DestinationEndpoint ConnectorBase::server_endpoint_
protected

◆ server_sock_

mysql_harness::DestinationSocket ConnectorBase::server_sock_
protected
Initial value:
{
net::io_context & io_ctx_
Definition: connection.h:310
Definition: socket.h:1090

◆ session_info_

routing_guidelines::Session_info ConnectorBase::session_info_
protected

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