MySQL 8.0.39
Source Code Documentation
DestRoundRobin Class Reference

#include <dest_round_robin.h>

Inheritance diagram for DestRoundRobin:
[legend]

Public Member Functions

 DestRoundRobin (net::io_context &io_ctx, Protocol::Type protocol=Protocol::get_default())
 Default constructor. More...
 
 ~DestRoundRobin () override=default
 Destructor. More...
 
Destinations destinations () override
 get destinations to connect() to. More...
 
routing::RoutingStrategy get_strategy () override
 Return our routing strategy. More...
 
- Public Member Functions inherited from RouteDestination
 RouteDestination (net::io_context &io_ctx, Protocol::Type protocol=Protocol::get_default())
 Default constructor. More...
 
virtual ~RouteDestination ()=default
 Destructor. More...
 
 RouteDestination (const RouteDestination &other)=delete
 
 RouteDestination (RouteDestination &&other)=delete
 
RouteDestinationoperator= (const RouteDestination &other)=delete
 
RouteDestinationoperator= (RouteDestination &&other)=delete
 
virtual void add (const mysql_harness::TCPAddress dest)
 Adds a destination. More...
 
virtual void add (const std::string &address, uint16_t port)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
virtual void remove (const std::string &address, uint16_t port)
 Removes a destination. More...
 
virtual mysql_harness::TCPAddress get (const std::string &address, uint16_t port)
 Gets destination based on address and port. More...
 
virtual void clear ()
 Removes all destinations. More...
 
size_t size () noexcept
 Gets the number of destinations. More...
 
virtual bool empty () const noexcept
 Returns whether there are destinations. More...
 
virtual void start (const mysql_harness::PluginFuncEnv *env)
 Start the destination threads (if any) More...
 
AddrVector::iterator begin ()
 
AddrVector::const_iterator begin () const
 
AddrVector::iterator end ()
 
AddrVector::const_iterator end () const
 
virtual AddrVector get_destinations () const
 
virtual std::optional< Destinationsrefresh_destinations (const Destinations &dests)
 refresh destinations. More...
 
virtual void handle_sockets_acceptors ()
 Trigger listening socket acceptors state handler based on the destination type. More...
 
- Public Member Functions inherited from DestinationNodesStateNotifier
AllowedNodesChangeCallbacksListIterator register_allowed_nodes_change_callback (const AllowedNodesChangedCallback &clb)
 Registers the callback for notification on the change in the state if the destination nodes. More...
 
void unregister_allowed_nodes_change_callback (const AllowedNodesChangeCallbacksListIterator &it)
 Unregisters the callback registered with register_allowed_nodes_change_callback(). More...
 
void register_start_router_socket_acceptor (const StartSocketAcceptorCallback &clb)
 Registers the callback for notification that the routing socket acceptor should accept new connections. More...
 
void unregister_start_router_socket_acceptor ()
 Unregisters the callback registered with register_start_router_socket_acceptor(). More...
 
void register_stop_router_socket_acceptor (const StopSocketAcceptorCallback &clb)
 Registers the callback for notification that the routing socket acceptor should stop accepting new connections. More...
 
void unregister_stop_router_socket_acceptor ()
 Unregisters the callback registered with register_stop_router_socket_acceptor(). More...
 
void register_md_refresh_callback (const MetadataRefreshCallback &callback)
 Registers a callback that is going to be used on metadata refresh. More...
 
void unregister_md_refresh_callback ()
 Unregisters the callback registered with register_md_refresh_callback(). More...
 
void register_query_quarantined_destinations (const QueryQuarantinedDestinationsCallback &clb)
 Registers a callback that could be used for checking if the provided destination candidate is currently quarantined. More...
 
void unregister_query_quarantined_destinations ()
 Unregisters the callback registered with register_query_quarantined_destinations(). More...
 

Protected Attributes

size_t start_pos_ {}
 
- Protected Attributes inherited from RouteDestination
AddrVector destinations_
 List of destinations. More...
 
std::mutex mutex_update_
 Mutex for updating destinations and iterator. More...
 
net::io_contextio_ctx_
 
Protocol::Type protocol_
 Protocol for the destination. More...
 
- Protected Attributes inherited from DestinationNodesStateNotifier
AllowedNodesChangeCallbacksList allowed_nodes_change_callbacks_
 
MetadataRefreshCallback md_refresh_callback_
 
StartSocketAcceptorCallback start_router_socket_acceptor_callback_
 
StopSocketAcceptorCallback stop_router_socket_acceptor_callback_
 
QueryQuarantinedDestinationsCallback query_quarantined_destinations_callback_
 
std::mutex allowed_nodes_change_callbacks_mtx_
 
std::mutex md_refresh_callback_mtx_
 
std::mutex socket_acceptor_handle_callbacks_mtx
 
std::mutex query_quarantined_destinations_callback_mtx_
 

Additional Inherited Members

- Public Types inherited from RouteDestination
using AddrVector = std::vector< mysql_harness::TCPAddress >
 

Constructor & Destructor Documentation

◆ DestRoundRobin()

DestRoundRobin::DestRoundRobin ( net::io_context io_ctx,
Protocol::Type  protocol = Protocol::get_default() 
)
inline

Default constructor.

Parameters
io_ctxcontext for io operations
protocolProtocol for the destination, defaults to value returned by Protocol::get_default()

◆ ~DestRoundRobin()

DestRoundRobin::~DestRoundRobin ( )
overridedefault

Destructor.

Member Function Documentation

◆ destinations()

Destinations DestRoundRobin::destinations ( )
overridevirtual

get destinations to connect() to.

destinations are in order of preference.

Implements RouteDestination.

◆ get_strategy()

routing::RoutingStrategy DestRoundRobin::get_strategy ( )
inlineoverridevirtual

Return our routing strategy.

Implements RouteDestination.

Member Data Documentation

◆ start_pos_

size_t DestRoundRobin::start_pos_ {}
protected

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