MXS-2025 Change RWBackend usage to a vector of raw ptrs.

This is essentially just a search and replace to change SRWBackend to
RWBackend* and SRWBackendList to PRWBackends, a vector of a raw
pointers. In the next few commits vector<unique_ptr<RWBackend>>
will be used for life time management.

There are a lot of diffs from the global search and replace. Only a few manual
edits had to be done.

list-src -x build | xargs sed -ri 's/SRWBackends/prwbackends/g'
list-src -x build | xargs sed -ri 's/const mxs::SRWBackend\&/const mxs::RWBackend\*/g'
list-src -x build | xargs sed -ri 's/const SRWBackend\&/const RWBackend\*/g'
list-src -x build | xargs sed -ri 's/mxs::SRWBackend\&/mxs::RWBackend\*/g'
list-src -x build | xargs sed -ri 's/mxs::SRWBackend/mxs::RWBackend\*/g'
list-src -x build | xargs sed -ri 's/SRWBackend\(\)/nullptr/g'
list-src -x build | xargs sed -ri 's/mxs::SRWBackend\&/mxs::RWBackend\*/g'
list-src -x build | xargs sed -ri 's/mxs::SRWBackend/mxs::RWBackend\*/g'
list-src -x build | xargs sed -ri 's/SRWBackend\&/RWBackend\*/g'
list-src -x build | xargs sed -ri 's/SRWBackend\b/RWBackend\*/g'
list-src -x build | xargs sed -ri 's/prwbackends/PRWBackends/g'
This commit is contained in:
Niclas Antti
2018-11-28 18:52:42 +02:00
parent d96a7dedc5
commit 20b62a3f3d
10 changed files with 128 additions and 125 deletions

View File

@ -22,8 +22,8 @@ using namespace maxscale;
RWSplitSession::RWSplitSession(RWSplit* instance,
MXS_SESSION* session,
const SRWBackendList& backends,
const SRWBackend& master)
PRWBackends backends,
RWBackend* master)
: mxs::RouterSession(session)
, m_backends(backends)
, m_current_master(master)
@ -60,18 +60,18 @@ RWSplitSession* RWSplitSession::create(RWSplit* router, MXS_SESSION* session)
if (router->have_enough_servers())
{
SRWBackendList backends = RWBackend::from_servers(router->service()->dbref);
PRWBackends backends = RWBackend::from_servers(router->service()->dbref);
/**
* At least the master must be found if the router is in the strict mode.
* If sessions without master are allowed, only a slave must be found.
*/
SRWBackend master;
RWBackend* master;
if (router->select_connect_backend_servers(session,
backends,
master,
&master,
NULL,
NULL,
connection_type::ALL))
@ -91,11 +91,11 @@ RWSplitSession* RWSplitSession::create(RWSplit* router, MXS_SESSION* session)
return rses;
}
void close_all_connections(SRWBackendList& backends)
void close_all_connections(PRWBackends& backends)
{
for (SRWBackendList::iterator it = backends.begin(); it != backends.end(); it++)
for (PRWBackends::iterator it = backends.begin(); it != backends.end(); it++)
{
SRWBackend& backend = *it;
RWBackend* backend = *it;
if (backend->in_use())
{
@ -306,13 +306,13 @@ GWBUF* RWSplitSession::discard_master_wait_gtid_result(GWBUF* buffer)
*
* @return The correct reference
*/
SRWBackend& RWSplitSession::get_backend_from_dcb(DCB* dcb)
RWBackend* RWSplitSession::get_backend_from_dcb(DCB* dcb)
{
mxb_assert(dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER);
for (auto it = m_backends.begin(); it != m_backends.end(); it++)
{
SRWBackend& backend = *it;
RWBackend* backend = *it;
if (backend->in_use() && backend->dcb() == dcb)
{
@ -325,9 +325,8 @@ SRWBackend& RWSplitSession::get_backend_from_dcb(DCB* dcb)
MXS_ALERT("No reference to DCB %p found, aborting.", dcb);
raise(SIGABRT);
// To make the compiler happy, we return a reference to a static value.
static SRWBackend this_should_not_happen;
return this_should_not_happen;
// Make the compiler happy
abort();
}
/**
@ -367,7 +366,7 @@ static bool connection_was_killed(GWBUF* buffer)
return rval;
}
static void log_unexpected_response(SRWBackend& backend, GWBUF* buffer, GWBUF* current_query)
static void log_unexpected_response(RWBackend* backend, GWBUF* buffer, GWBUF* current_query)
{
if (mxs_mysql_is_err_packet(buffer))
{
@ -400,7 +399,7 @@ static void log_unexpected_response(SRWBackend& backend, GWBUF* buffer, GWBUF* c
}
}
GWBUF* RWSplitSession::handle_causal_read_reply(GWBUF* writebuf, SRWBackend& backend)
GWBUF* RWSplitSession::handle_causal_read_reply(GWBUF* writebuf, RWBackend* backend)
{
if (m_config.causal_reads)
{
@ -485,7 +484,7 @@ void RWSplitSession::trx_replay_next_stmt()
}
}
void RWSplitSession::manage_transactions(SRWBackend& backend, GWBUF* writebuf)
void RWSplitSession::manage_transactions(RWBackend* backend, GWBUF* writebuf)
{
if (m_otrx_state == OTRX_ROLLBACK)
{
@ -564,7 +563,7 @@ static bool server_is_shutting_down(GWBUF* writebuf)
void RWSplitSession::clientReply(GWBUF* writebuf, DCB* backend_dcb)
{
DCB* client_dcb = backend_dcb->session->client_dcb;
SRWBackend& backend = get_backend_from_dcb(backend_dcb);
RWBackend* backend = get_backend_from_dcb(backend_dcb);
if (backend->get_reply_state() == REPLY_STATE_DONE)
{
@ -747,7 +746,7 @@ void RWSplitSession::clientReply(GWBUF* writebuf, DCB* backend_dcb)
}
}
void check_and_log_backend_state(const SRWBackend& backend, DCB* problem_dcb)
void check_and_log_backend_state(const RWBackend* backend, DCB* problem_dcb)
{
if (backend)
{
@ -868,7 +867,7 @@ void RWSplitSession::handleError(GWBUF* errmsgbuf,
MXS_SESSION* session = problem_dcb->session;
mxb_assert(session);
SRWBackend& backend = get_backend_from_dcb(problem_dcb);
RWBackend* backend = get_backend_from_dcb(problem_dcb);
mxb_assert(backend->in_use());
switch (action)
@ -950,7 +949,7 @@ void RWSplitSession::handleError(GWBUF* errmsgbuf,
&& session_trx_is_read_only(problem_dcb->session))
{
// We're no longer locked to this server as it failed
m_target_node.reset();
m_target_node = nullptr;
// Try to replay the transaction on another node
can_continue = start_trx_replay();
@ -1019,7 +1018,7 @@ void RWSplitSession::handleError(GWBUF* errmsgbuf,
*/
bool RWSplitSession::handle_error_new_connection(DCB* backend_dcb, GWBUF* errmsg)
{
SRWBackend& backend = get_backend_from_dcb(backend_dcb);
RWBackend* backend = get_backend_from_dcb(backend_dcb);
MXS_SESSION* ses = backend_dcb->session;
bool route_stored = false;
@ -1096,7 +1095,7 @@ bool RWSplitSession::handle_error_new_connection(DCB* backend_dcb, GWBUF* errmsg
{
succp = m_router->select_connect_backend_servers(ses,
m_backends,
m_current_master,
&m_current_master,
&m_sescmd_list,
&m_expected_responses,
connection_type::SLAVE);
@ -1116,7 +1115,7 @@ bool RWSplitSession::handle_error_new_connection(DCB* backend_dcb, GWBUF* errmsg
void RWSplitSession::handle_error_reply_client(DCB* backend_dcb, GWBUF* errmsg)
{
mxs_session_state_t sesstate = m_client->session->state;
SRWBackend& backend = get_backend_from_dcb(backend_dcb);
RWBackend* backend = get_backend_from_dcb(backend_dcb);
backend->close();