MXS-2025 RWBackends as a vector of unique_ptr:s

For lifetime management keep RWBackends in a vector of unique_ptrs.
RWSplitSession keeps the unique_ptrs very private, and provides a vector
of plain pointers for all other interfaces.
This commit is contained in:
Niclas Antti
2018-11-29 11:57:28 +02:00
parent 91f6f374a8
commit 0d09b56f58
9 changed files with 52 additions and 35 deletions

View File

@ -131,7 +131,8 @@ public:
}
// TODO: Make member variables private
mxs::PRWBackends m_backends; /**< List of backend servers */
mxs::SRWBackends m_backends; /**< Mem. management, not for use outside RWSplitSession */
mxs::PRWBackends m_raw_backends; /**< Backend pointers for use in interfaces . */
mxs::RWBackend* m_current_master; /**< Current master server */
mxs::RWBackend* m_target_node; /**< The currently locked target node */
mxs::RWBackend* m_prev_target; /**< The previous target where a query was sent */
@ -172,7 +173,7 @@ public:
private:
RWSplitSession(RWSplit* instance,
MXS_SESSION* session,
mxs::PRWBackends backends,
mxs::SRWBackends backends,
mxs::RWBackend* master);
void process_sescmd_response(mxs::RWBackend* backend, GWBUF** ppPacket);