X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fmon%2FQuorumService.h;fp=src%2Fceph%2Fsrc%2Fmon%2FQuorumService.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=626ce659e573c238e891611adf6f09f96c1b2aae;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/mon/QuorumService.h b/src/ceph/src/mon/QuorumService.h deleted file mode 100644 index 626ce65..0000000 --- a/src/ceph/src/mon/QuorumService.h +++ /dev/null @@ -1,127 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2013 Inktank, Inc - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ -#ifndef CEPH_MON_QUORUM_SERVICE_H -#define CEPH_MON_QUORUM_SERVICE_H - -#include - -#include "include/types.h" -#include "include/Context.h" -#include "common/RefCountedObj.h" -#include "common/config.h" - -#include "mon/Monitor.h" - -class QuorumService -{ - Context *tick_event = nullptr; - double tick_period; - -public: - enum { - SERVICE_HEALTH = 0x01, - SERVICE_TIMECHECK = 0x02, - SERVICE_CONFIG_KEY = 0x03, - }; - -protected: - Monitor *mon; - epoch_t epoch; - - QuorumService(Monitor *m) : - tick_period(g_conf->mon_tick_interval), - mon(m), - epoch(0) - { - } - - void cancel_tick() { - if (tick_event) - mon->timer.cancel_event(tick_event); - tick_event = NULL; - } - - void start_tick() { - generic_dout(10) << __func__ << dendl; - - cancel_tick(); - if (tick_period <= 0) - return; - - tick_event = new C_MonContext(mon, [this](int r) { - if (r < 0) - return; - tick(); - }); - mon->timer.add_event_after(tick_period, tick_event); - } - - void set_update_period(double t) { - tick_period = t; - } - - bool in_quorum() { - return (mon->is_leader() || mon->is_peon()); - } - - virtual bool service_dispatch(MonOpRequestRef op) = 0; - virtual void service_tick() = 0; - virtual void service_shutdown() = 0; - - virtual void start_epoch() = 0; - virtual void finish_epoch() = 0; - virtual void cleanup() = 0; - -public: - virtual ~QuorumService() { } - - void start(epoch_t new_epoch) { - epoch = new_epoch; - start_epoch(); - } - - void finish() { - generic_dout(20) << "QuorumService::finish" << dendl; - finish_epoch(); - } - - epoch_t get_epoch() const { - return epoch; - } - - bool dispatch(MonOpRequestRef op) { - return service_dispatch(op); - } - - void tick() { - service_tick(); - start_tick(); - } - - void shutdown() { - generic_dout(0) << "quorum service shutdown" << dendl; - cancel_tick(); - service_shutdown(); - } - - virtual void init() { } - - virtual void get_health(list >& summary, - list > *detail) = 0; - virtual int get_type() = 0; - virtual string get_name() const = 0; - -}; - -#endif /* CEPH_MON_QUORUM_SERVICE_H */