/* * 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 { 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 */