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

52 lines
1.2 KiB
C++

/*
* File: TimeService.h
* Author: jgaebler
*
* Created on February 14, 2013, 2:12 PM
*/
#pragma once
#ifndef TIMESERVICE_H
#define TIMESERVICE_H
#include "common/Defines.h"
#include "common/MoversightService.h"
#include "common/time/VirtualLogicalTime.h"
namespace ubeeme {
namespace moversight {
/**
* @class TimeService
* @author Jan Gäbler
* @brief This service a local time service within moversight to provide access to the virtual logical time determined by the MOVS paradigm.
* @ingroup Moversight
*/
class TimeService : public MoversightService {
friend class MessageTransfer;
public:
TimeService(Dispatcher & dis);
virtual ~TimeService();
virtual void initialise();
virtual void finalise();
virtual const VirtualLogicalTime & getCurrentLogicalTime() const;
virtual void handleEvent(const LocalPeerUpdatedEvent & e);
private:
void update(const VirtualLogicalTime & newTime);
void incCurrentLogicalTime();
VirtualLogicalTime logicalTime;
};
}
}
#endif /* TIMESERVICE_H */