26#ifndef ROUTING_DEST_STATIC_INCLUDED 
   27#define ROUTING_DEST_STATIC_INCLUDED 
   39      const bool last_connection_successful,
 
   40      const std::uint32_t dest_pool_size) = 0;
 
   54      const bool last_connection_successful,
 
   55      const std::uint32_t dest_pool_size) 
override;
 
   66      const bool last_connection_successful,
 
   67      const std::uint32_t dest_pool_size) 
override;
 
   80      const bool last_connection_successful,
 
   81      const std::uint32_t dest_pool_size) 
override;
 
Type
supported protocols
Definition: base_protocol.h:32
 
Manage destinations for a Connection Routing.
Definition: destination.h:84
 
std::vector< mysql_harness::Destination > DestVector
Definition: destination.h:86
 
Destination to forward client connections to.
Definition: destination.h:43
 
First-available strategy.
Definition: dest_static.h:51
 
std::optional< std::uint32_t > get_destination_index(const bool last_connection_successful, const std::uint32_t dest_pool_size) override
Definition: dest_static.cc:101
 
MySQLRoutingContext holds data used by MySQLRouting (1 per plugin instances) and MySQLRoutingConnecti...
Definition: context.h:54
 
First-available strategy.
Definition: dest_static.h:63
 
std::optional< std::uint32_t > get_destination_index(const bool last_connection_successful, const std::uint32_t dest_pool_size) override
Definition: dest_static.cc:112
 
Round-robin strategy.
Definition: dest_static.h:77
 
bool started_
Definition: dest_static.h:84
 
std::optional< std::uint32_t > get_destination_index(const bool last_connection_successful, const std::uint32_t dest_pool_size) override
Definition: dest_static.cc:120
 
std::optional< std::uint32_t > failed_instance_index_
Definition: dest_static.h:85
 
Definition: dest_static.h:88
 
stdx::expected< void, std::error_code > init_destinations(const routing_guidelines::Session_info &) override
Set up destination manager, prepare the destinations.
Definition: dest_static.h:122
 
void add(const mysql_harness::Destination &dest)
Adds a destination.
Definition: dest_static.cc:58
 
std::vector< mysql_harness::Destination > get_destination_candidates() const override
Get addresses of all nodes that are a possible destination candidates.
Definition: dest_static.h:104
 
void handle_sockets_acceptors() override
Trigger listening socket acceptors state handler based on the destination type.
Definition: dest_static.h:113
 
std::unique_ptr< StrategyHandler > strategy_handler_
Get destination index based on routing strategy for static routes.
Definition: dest_static.h:134
 
void start(const mysql_harness::PluginFuncEnv *) override
Start the destination manager.
Definition: dest_static.cc:50
 
StaticDestinationsManager(routing::RoutingStrategy strategy, net::io_context &io_ctx, MySQLRoutingContext &routing_ctx)
Definition: dest_static.cc:28
 
DestVector destinations_
List of destinations.
Definition: dest_static.h:137
 
bool has_read_only() const override
Check if there are read-only destinations that could be used.
Definition: dest_static.h:130
 
void connect_status(std::error_code ec) override
Definition: dest_static.cc:68
 
Destination last_destination_
Definition: dest_static.h:138
 
Protocol::Type protocol_
Protocol for the endpoint.
Definition: dest_static.h:141
 
std::unique_ptr< Destination > get_next_destination(const routing_guidelines::Session_info &) override
Get destination that should be used for connection attempt.
Definition: dest_static.cc:73
 
bool has_read_write() const override
Check if there are read-write destinations that could be used.
Definition: dest_static.h:129
 
bool refresh_destinations(const routing_guidelines::Session_info &) override
refresh destinations.
Definition: dest_static.h:109
 
std::unique_ptr< Destination > get_last_used_destination() const override
Get destination that was selected as a destination candidate.
Definition: dest_static.h:118
 
Base class for routing strategy handler.
Definition: dest_static.h:34
 
virtual ~StrategyHandler()=default
 
std::uint32_t index_pos_
Definition: dest_static.h:43
 
virtual std::optional< std::uint32_t > get_destination_index(const bool last_connection_successful, const std::uint32_t dest_pool_size)=0
 
Definition: destination.h:95
 
PluginFuncEnv object.
Definition: loader.h:675
 
Definition: io_context.h:61
 
Definition: expected.h:286
 
RoutingStrategy
Routing strategies supported by Routing plugin.
Definition: routing.h:271
 
Information about incoming session.
Definition: routing_guidelines.h:103