26#ifndef ROUTING_CLASSIC_LAZY_CONNECT_INCLUDED
27#define ROUTING_CLASSIC_LAZY_CONNECT_INCLUDED
29#include <system_error>
113 const std::optional<classic_protocol::message::server::Error> &
err) {
117 std::optional<classic_protocol::message::server::Error>
failed()
const {
160 std::chrono::steady_clock::now()};
162 std::optional<classic_protocol::message::server::Error>
failed_;
a processor base class with helper functions.
Definition: forwarding_processor.h:38
attach a server connection and initialize it.
Definition: classic_lazy_connect.h:49
stdx::expected< Processor::Result, std::error_code > fallback_to_write()
Definition: classic_lazy_connect.cc:898
stdx::expected< Processor::Result, std::error_code > authenticated()
Definition: classic_lazy_connect.cc:484
stdx::expected< Processor::Result, std::error_code > set_vars_done()
Definition: classic_lazy_connect.cc:642
void failed(const std::optional< classic_protocol::message::server::Error > &err)
Definition: classic_lazy_connect.h:112
stdx::expected< Processor::Result, std::error_code > connected()
the handshake part.
Definition: classic_lazy_connect.cc:381
stdx::expected< Processor::Result, std::error_code > set_server_option_done()
Definition: classic_lazy_connect.cc:684
stdx::expected< Processor::Result, std::error_code > process() override
Definition: classic_lazy_connect.cc:230
stdx::expected< Processor::Result, std::error_code > wait_gtid_executed()
Definition: classic_lazy_connect.cc:803
stdx::expected< Processor::Result, std::error_code > fetch_sys_vars_done()
Definition: classic_lazy_connect.cc:744
stdx::expected< Processor::Result, std::error_code > set_trx_characteristics()
Definition: classic_lazy_connect.cc:942
std::function< void(const classic_protocol::message::server::Error &err)> on_error_
Definition: classic_lazy_connect.h:153
stdx::expected< Processor::Result, std::error_code > set_schema_done()
Definition: classic_lazy_connect.cc:779
TraceEvent * trace_event_authenticate_
Definition: classic_lazy_connect.h:168
std::string trx_stmt_
Definition: classic_lazy_connect.h:164
stdx::expected< Processor::Result, std::error_code > from_stash()
Definition: classic_lazy_connect.cc:296
stdx::expected< Processor::Result, std::error_code > wait_gtid_executed_done()
Definition: classic_lazy_connect.cc:846
Stage stage_
Definition: classic_lazy_connect.h:146
stdx::expected< Processor::Result, std::error_code > pool_or_close()
Definition: classic_lazy_connect.cc:869
TraceEvent * trace_event_set_schema_
Definition: classic_lazy_connect.h:171
TraceEvent * trace_event_fallback_to_write_
Definition: classic_lazy_connect.h:174
RouterRequireFetcher::Result required_connection_attributes_fetcher_result_
Definition: classic_lazy_connect.h:150
stdx::expected< Processor::Result, std::error_code > set_schema()
Definition: classic_lazy_connect.cc:755
bool already_fallback_
Definition: classic_lazy_connect.h:156
bool retry_connect_
Definition: classic_lazy_connect.h:155
bool in_handshake_
Definition: classic_lazy_connect.h:148
stdx::expected< Processor::Result, std::error_code > fetch_sys_vars()
Definition: classic_lazy_connect.cc:702
std::optional< classic_protocol::message::server::Error > failed_
Definition: classic_lazy_connect.h:162
LazyConnector(MysqlRoutingClassicConnectionBase *conn, bool in_handshake, std::function< void(const classic_protocol::message::server::Error &err)> on_error, TraceEvent *parent_event)
create a lazy-connector.
Definition: classic_lazy_connect.h:63
TraceEvent * trace_event_wait_gtid_executed_
Definition: classic_lazy_connect.h:172
TraceEvent * trace_event_set_trx_characteristics_
Definition: classic_lazy_connect.h:175
std::chrono::steady_clock::time_point started_
Definition: classic_lazy_connect.h:159
stdx::expected< Processor::Result, std::error_code > send_auth_ok()
Definition: classic_lazy_connect.cc:1049
stdx::expected< Processor::Result, std::error_code > fetch_user_attrs_done()
Definition: classic_lazy_connect.cc:1021
TraceEvent * trace_event_set_vars_
Definition: classic_lazy_connect.h:169
TraceEvent * trace_event_fetch_sys_vars_
Definition: classic_lazy_connect.h:170
stdx::expected< Processor::Result, std::error_code > set_trx_characteristics_done()
Definition: classic_lazy_connect.cc:982
stdx::expected< Processor::Result, std::error_code > set_server_option()
Definition: classic_lazy_connect.cc:656
Stage stage() const
Definition: classic_lazy_connect.h:103
Stage
Definition: classic_lazy_connect.h:73
@ SetTrxCharacteristicsDone
stdx::expected< Processor::Result, std::error_code > connect()
Definition: classic_lazy_connect.cc:354
TraceEvent * trace_event_check_read_only_
Definition: classic_lazy_connect.h:173
stdx::expected< Processor::Result, std::error_code > fetch_user_attrs()
Definition: classic_lazy_connect.cc:1002
TraceEvent * parent_event_
Definition: classic_lazy_connect.h:166
TraceEvent * trace_event_connect_
Definition: classic_lazy_connect.h:167
std::optional< classic_protocol::message::server::Error > failed() const
Definition: classic_lazy_connect.h:117
void stage(Stage stage)
Definition: classic_lazy_connect.h:102
stdx::expected< Processor::Result, std::error_code > set_vars()
Definition: classic_lazy_connect.cc:551
Definition: classic_connection_base.h:56
Definition: expected.h:284
borrowable::message::server::Error< false > Error
Definition: classic_protocol_message.h:1411
static Value err()
Create a Value object that represents an error condition.
Definition: json_binary.cc:927
Definition: gcs_xcom_synode.h:64
Definition: classic_lazy_connect.h:105
std::optional< bool > x509
Definition: classic_lazy_connect.h:107
std::optional< std::string > subject
Definition: classic_lazy_connect.h:109
std::optional< std::string > issuer
Definition: classic_lazy_connect.h:108
std::optional< bool > ssl
Definition: classic_lazy_connect.h:106
Definition: trace_span.h:35