File i_clock.h
Last update: 22.04.2026Location: core/time/i_clock/i_clock.h
Classes
Namespaces
Includes
- core/export/simfwk_core_export.h
- core/time/i_clock/timestamp.h
-
-
Included by
- clock.h
- i_activity_factory.h
- i_simulation_completion_checker.h
- kpi_definition.h
- simulation_completion_checker.h
- simulation_instance.h
Source
#ifndef SIMFWK_CORE_TIME_ICLOCK_ICLOCK_H
#define SIMFWK_CORE_TIME_ICLOCK_ICLOCK_H
#include "core/export/simfwk_core_export.h"
#include "core/time/i_clock/timestamp.h"
#include <chrono>
#include <memory>
namespace simulation_framework
{
namespace core
{
namespace time
{
template <class Duration>
using timepoint = std::chrono::time_point<std::chrono::system_clock, Duration>;
using milliseconds = std::chrono::milliseconds;
class SIMFWK_CORE_API IClock
{
public:
virtual ~IClock() = default;
virtual void SetNow(const milliseconds& ms) = 0;
virtual void SetNow(const Timestamp& timestamp) = 0;
virtual milliseconds GetNow() const = 0;
virtual Timestamp GetNowAsTimestamp() const = 0;
virtual void IncrementBy(const milliseconds& ms) = 0;
};
} // namespace time
} // namespace core
} // namespace simulation_framework
#endif // SIMFWK_CORE_TIME_ICLOCK_ICLOCK_H