52 lines
1.2 KiB
C++
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 */
|
|
|