Files
2014-06-30 13:58:10 +02:00

71 lines
1.9 KiB
C++

/*
* File: MTTimer.h
* Author: jgaebler
*
* Created on April 29, 2010, 10:41 AM
*/
#pragma once
#ifndef _MTTIMER_H
#define _MTTIMER_H
#include "common/Defines.h"
#include "common/container/PeerIDList.h"
#include "common/time/VirtualLogicalTime.h"
#include "common/timer/ReferenceMonitorTimer.h"
#include "common/transport/MessageReference.h"
namespace ubeeme {
namespace moversight {
class MessageTransfer;
/**
* @class MTTimer
* @brief Provides a general purpose timer, used within the message transfer submodule.
* @ingroup Moversight
* @author Jan Gäbler
*/
class MTTimer : public ReferenceMonitorTimer<MessageReference> {
public:
virtual ~MTTimer();
// field getter/setter methods
virtual VirtualLogicalTime getLt();
virtual void setLt(const VirtualLogicalTime& lt);
virtual size_t getNumberOfMissingPeers();
virtual PeerIDList getMissingPeers();
virtual void setMissingPeers(const PeerIDList& missingPeers);
virtual void removeMissingPeer(PeerID pId);
virtual size_t getNumberOfForeignMissingPeers();
virtual PeerIDList getForeignMissingPeers();
virtual void setForeignMissingPeers(const PeerIDList& foreignMissingPeers);
virtual void removeForeignMissingPeer(PeerID pId);
protected:
MTTimer(MessageTransfer & aMt);
MTTimer(const MTTimer& other);
/**
* @brief A reference to the message transfer module.
*/
MessageTransfer & mt;
// protected and unimplemented operator==(), to prevent accidental usage
bool operator==(const MTTimer&);
// make assignment operator protected to force the user override it
MTTimer& operator=(const MTTimer& other);
};
}
}
#endif /* _MTTIMERO_H */