MXS-1775 Add MonitorInstanceSimple class

MonitorInstanceSimple is intended for simple monitors that
probe servers in a straightforward fashion. More complex monitors
can be derived directly from MonitorInstance.
This commit is contained in:
Johan Wikman
2018-06-07 11:25:44 +03:00
parent 880db1353a
commit 8afa8c2c5a
14 changed files with 82 additions and 51 deletions

View File

@ -36,7 +36,7 @@ static void detectStaleMaster(void *, int);
static bool isMySQLEvent(mxs_monitor_event_t event);
MMMonitor::MMMonitor(MXS_MONITOR *monitor)
: maxscale::MonitorInstance(monitor)
: maxscale::MonitorInstanceSimple(monitor)
, m_id(MXS_MONITOR_DEFAULT_ID)
, m_detectStaleMaster(false)
{
@ -318,10 +318,8 @@ void MMMonitor::update_server_status(MXS_MONITORED_SERVER* monitored_server)
}
}
void MMMonitor::tick()
void MMMonitor::post_tick()
{
MonitorInstance::tick();
/* Get Master server pointer */
MXS_MONITORED_SERVER *root_master = get_current_master();

View File

@ -20,7 +20,7 @@
* @file mmmon.hh - The Multi-Master monitor
*/
class MMMonitor : public maxscale::MonitorInstance
class MMMonitor : public maxscale::MonitorInstanceSimple
{
public:
MMMonitor(const MMMonitor&) = delete;
@ -35,7 +35,7 @@ protected:
bool configure(const MXS_CONFIG_PARAMETER* params);
bool has_sufficient_permissions() const;
void update_server_status(MXS_MONITORED_SERVER* monitored_server);
void tick();
void post_tick();
private:
unsigned long m_id; /**< Monitor ID */