72 lines
1.7 KiB
C++
72 lines
1.7 KiB
C++
/*
|
|
* 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 */
|
|
|