25#ifndef ROUTING_CLASSIC_LAZY_CONNECT_INCLUDED
26#define ROUTING_CLASSIC_LAZY_CONNECT_INCLUDED
28#include <system_error>
111 const std::optional<classic_protocol::message::server::Error> &
err) {
115 std::optional<classic_protocol::message::server::Error>
failed()
const {
157 std::chrono::steady_clock::now()};
159 std::optional<classic_protocol::message::server::Error>
failed_;
a processor base class with helper functions.
Definition: forwarding_processor.h:36
attach a server connection and initialize it.
Definition: classic_lazy_connect.h:48
stdx::expected< Processor::Result, std::error_code > fallback_to_write()
Definition: classic_lazy_connect.cc:821
stdx::expected< Processor::Result, std::error_code > authenticated()
Definition: classic_lazy_connect.cc:423
stdx::expected< Processor::Result, std::error_code > set_vars_done()
Definition: classic_lazy_connect.cc:568
void failed(const std::optional< classic_protocol::message::server::Error > &err)
Definition: classic_lazy_connect.h:110
stdx::expected< Processor::Result, std::error_code > connected()
the handshake part.
Definition: classic_lazy_connect.cc:320
stdx::expected< Processor::Result, std::error_code > set_server_option_done()
Definition: classic_lazy_connect.cc:610
stdx::expected< Processor::Result, std::error_code > process() override
Definition: classic_lazy_connect.cc:223
stdx::expected< Processor::Result, std::error_code > wait_gtid_executed()
Definition: classic_lazy_connect.cc:730
stdx::expected< Processor::Result, std::error_code > fetch_sys_vars_done()
Definition: classic_lazy_connect.cc:671
stdx::expected< Processor::Result, std::error_code > set_trx_characteristics()
Definition: classic_lazy_connect.cc:865
std::function< void(const classic_protocol::message::server::Error &err)> on_error_
Definition: classic_lazy_connect.h:150
stdx::expected< Processor::Result, std::error_code > set_schema_done()
Definition: classic_lazy_connect.cc:706
TraceEvent * trace_event_authenticate_
Definition: classic_lazy_connect.h:165
std::string trx_stmt_
Definition: classic_lazy_connect.h:161
stdx::expected< Processor::Result, std::error_code > wait_gtid_executed_done()
Definition: classic_lazy_connect.cc:773
Stage stage_
Definition: classic_lazy_connect.h:143
stdx::expected< Processor::Result, std::error_code > pool_or_close()
Definition: classic_lazy_connect.cc:796
TraceEvent * trace_event_set_schema_
Definition: classic_lazy_connect.h:168
TraceEvent * trace_event_fallback_to_write_
Definition: classic_lazy_connect.h:171
RouterRequireFetcher::Result required_connection_attributes_fetcher_result_
Definition: classic_lazy_connect.h:147
stdx::expected< Processor::Result, std::error_code > set_schema()
Definition: classic_lazy_connect.cc:682
bool already_fallback_
Definition: classic_lazy_connect.h:153
bool retry_connect_
Definition: classic_lazy_connect.h:152
bool in_handshake_
Definition: classic_lazy_connect.h:145
stdx::expected< Processor::Result, std::error_code > fetch_sys_vars()
Definition: classic_lazy_connect.cc:628
std::optional< classic_protocol::message::server::Error > failed_
Definition: classic_lazy_connect.h:159
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:62
TraceEvent * trace_event_wait_gtid_executed_
Definition: classic_lazy_connect.h:169
TraceEvent * trace_event_set_trx_characteristics_
Definition: classic_lazy_connect.h:172
std::chrono::steady_clock::time_point started_
Definition: classic_lazy_connect.h:156
stdx::expected< Processor::Result, std::error_code > send_auth_ok()
Definition: classic_lazy_connect.cc:972
stdx::expected< Processor::Result, std::error_code > fetch_user_attrs_done()
Definition: classic_lazy_connect.cc:944
TraceEvent * trace_event_set_vars_
Definition: classic_lazy_connect.h:166
TraceEvent * trace_event_fetch_sys_vars_
Definition: classic_lazy_connect.h:167
stdx::expected< Processor::Result, std::error_code > set_trx_characteristics_done()
Definition: classic_lazy_connect.cc:905
stdx::expected< Processor::Result, std::error_code > set_server_option()
Definition: classic_lazy_connect.cc:582
Stage stage() const
Definition: classic_lazy_connect.h:101
Stage
Definition: classic_lazy_connect.h:72
@ SetTrxCharacteristicsDone
stdx::expected< Processor::Result, std::error_code > connect()
Definition: classic_lazy_connect.cc:289
TraceEvent * trace_event_check_read_only_
Definition: classic_lazy_connect.h:170
stdx::expected< Processor::Result, std::error_code > fetch_user_attrs()
Definition: classic_lazy_connect.cc:925
TraceEvent * parent_event_
Definition: classic_lazy_connect.h:163
TraceEvent * trace_event_connect_
Definition: classic_lazy_connect.h:164
std::optional< classic_protocol::message::server::Error > failed() const
Definition: classic_lazy_connect.h:115
void stage(Stage stage)
Definition: classic_lazy_connect.h:100
stdx::expected< Processor::Result, std::error_code > set_vars()
Definition: classic_lazy_connect.cc:496
Definition: classic_connection_base.h:257
Definition: expected.h:943
borrowable::message::server::Error< false > Error
Definition: classic_protocol_message.h:1410
static Value err()
Create a Value object that represents an error condition.
Definition: json_binary.cc:926
Definition: varlen_sort.h:174
Definition: classic_lazy_connect.h:103
std::optional< bool > x509
Definition: classic_lazy_connect.h:105
std::optional< std::string > subject
Definition: classic_lazy_connect.h:107
std::optional< std::string > issuer
Definition: classic_lazy_connect.h:106
std::optional< bool > ssl
Definition: classic_lazy_connect.h:104
Definition: trace_span.h:34