/* * File: RejoinTimer.h * Author: gschneid * Author: jgaebler * * Created on August 27, 2012, 2:26 PM */ #pragma once #ifndef REJOINTIMER_H #define REJOINTIMER_H #include "common/timer/MoversightTimer.h" #include "common/container/PeerIDList.h" #include "ms/MemberRegister.h" namespace ubeeme { namespace moversight { class MobilitySupport; /** * @class RejoinTimer * @brief Timer to monitor the rejoin after a partition was detected. * @author Grit Schneider * @author Jan Gäbler * @ingroup Moversight */ class RejoinTimer: public MoversightTimer { public: RejoinTimer(MobilitySupport & aMob); RejoinTimer(const RejoinTimer & other); virtual ~RejoinTimer(); RejoinTimer & operator=(const RejoinTimer & other); virtual void timeout(); RejoinTimer* dup(); void setSecondaryPeerIDList(PeerIDList pIDList); PeerIDList getSecondaryPeerIDList(); void removeSecondaryPeer(PeerID pId); void setDisconnectedPeers(PeerIDList pIDList); void addDisconnectedPeer(PeerID pID); PeerIDList getDisconnectedPeers(); void saveCurrentMRToOriginalMR(); void setOriginalMR(const MemberRegister & mr); MemberRegister & getOriginalMR(); void setReachablePeerID(PeerID pID); PeerID getReachablePeerID(); bool needToResetMR(); void setResetMR(bool value); private: MemberRegister originalMR; MobilitySupport & mob; }; } } #endif /* REJOINTIMER_H */