26#ifndef ROUTING_SRC_PROCESSORS_BASE_PROCESSOR_H_
27#define ROUTING_SRC_PROCESSORS_BASE_PROCESSOR_H_
140 template <
class Proto>
153 "use 'if (auto &tr = tracer()) { tr.trace(...); } instead")]]
void
165 const std::string_view &prefix);
base class of all the processors.
Definition: processor.h:61
MysqlRoutingClassicConnectionBase * conn_
Definition: processor.h:103
virtual ~BasicProcessor()=default
MysqlRoutingClassicConnectionBase * connection()
Definition: processor.h:84
virtual std::optional< std::string_view > diagnostic_stage_name() const
stage name of a staged processor.
Definition: processor.h:98
Result
Definition: processor.h:63
const MysqlRoutingClassicConnectionBase * connection() const
Definition: processor.h:82
BasicProcessor(MysqlRoutingClassicConnectionBase *conn)
Definition: processor.h:78
virtual stdx::expected< Result, std::error_code > process()=0
virtual std::string diagnostic_name() const
best-effort human-readable processor type.
Definition: processor.cc:38
SSL aware socket buffers.
Definition: channel.h:65
protocol state of a classic protocol connection.
Definition: classic_protocol_state.h:40
Definition: classic_connection_base.h:57
a processor base class with helper functions.
Definition: processor.h:109
static void log_fatal_error_code(const char *msg, std::error_code ec)
log a message with error-code as error.
Definition: processor.cc:139
stdx::expected< Result, std::error_code > send_server_failed(std::error_code ec)
Definition: processor.cc:43
void trace_command_end(TraceEvent *event, TraceEvent::StatusCode status_code=TraceEvent::StatusCode::kUnset)
end a command span and set a status-code.
Definition: processor.cc:210
stdx::expected< Result, std::error_code > recv_client_failed(std::error_code ec)
Definition: processor.cc:72
stdx::expected< Result, std::error_code > client_socket_failed(std::error_code ec)
Definition: processor.cc:92
TraceEvent * trace_connect(TraceEvent *parent_span)
start a connect span.
Definition: processor.cc:186
TraceEvent * trace_command(const std::string_view &prefix)
start a command span.
Definition: processor.cc:165
void trace(Tracer::Event e)
Definition: processor.cc:144
stdx::expected< Result, std::error_code > recv_server_failed(std::error_code ec)
Definition: processor.cc:52
stdx::expected< Result, std::error_code > send_client_failed(std::error_code ec)
Definition: processor.cc:63
void trace_span_end(TraceEvent *event, TraceEvent::StatusCode status_code=TraceEvent::StatusCode::kUnset)
end a span and set a status-code.
Definition: processor.cc:157
stdx::expected< void, std::error_code > discard_current_msg(TlsSwitchableConnection< Proto > &conn)
Definition: processor.h:141
stdx::expected< Result, std::error_code > server_socket_failed(std::error_code ec)
Definition: processor.cc:83
TraceEvent * trace_span(TraceEvent *parent_span, const std::string_view &prefix)
start a span.
Definition: processor.cc:150
stdx::expected< void, std::error_code > discard_current_msg(Channel &src_channel, ClassicProtocolState &src_protocol)
discard to current message.
Definition: processor.cc:100
TraceEvent * trace_connect_and_forward_command(TraceEvent *parent_span)
start a connect-and-forward span.
Definition: processor.cc:176
void trace_set_connection_attributes(TraceEvent *ev)
start a connect span.
Definition: processor.cc:190
TraceEvent * trace_forward_command(TraceEvent *parent_span)
start a forward span.
Definition: processor.cc:206
Tracer & tracer()
Definition: processor.cc:148
a Connection that can be switched to TLS.
Definition: connection_base.h:265
Channel & channel()
Definition: connection_base.h:360
protocol_state_type & protocol()
Definition: connection_base.h:399
traces the timestamps of events in a stderr log.
Definition: tracer.h:49
Definition: expected.h:286
required string event
Definition: replication_group_member_actions.proto:32
Definition: trace_span.h:35
StatusCode
Definition: trace_span.h:65