    

 ## On this page

  

 

 # File i\_clock.h

 Last update: 22.04.2026 

![](https://img.shields.io/badge/language-C%2B%2B-blue "C++")

**Location**: `core/time/i_clock/i_clock.h`

## Classes

- [simulation\_framework::core::time::IClock](classsimulation__framework_1_1core_1_1time_1_1IClock.md#classsimulation__framework_1_1core_1_1time_1_1IClock)

## Namespaces

- [simulation\_framework](namespacesimulation__framework.md#namespacesimulation__framework)
- [simulation\_framework::core](namespacesimulation__framework_1_1core.md#namespacesimulation__framework_1_1core)
- [time](namespacetime.md#namespacetime)
- [simulation\_framework::core::time](namespacesimulation__framework_1_1core_1_1time.md#namespacesimulation__framework_1_1core_1_1time)

## Includes

- core/export/simfwk\_core\_export.h
- [core/time/i\_clock/timestamp.h](timestamp_8h.md#timestamp_8h)
- 
- 

## Included by

- [clock.h](clock_8h.md#clock_8h)
- [i\_activity\_factory.h](i__activity__factory_8h.md#i__activity__factory_8h)
- [i\_simulation\_completion\_checker.h](i__simulation__completion__checker_8h.md#i__simulation__completion__checker_8h)
- [kpi\_definition.h](kpi__definition_8h.md#kpi__definition_8h)
- [simulation\_completion\_checker.h](simulation__completion__checker_8h.md#simulation__completion__checker_8h)
- [simulation\_instance.h](simulation__instance_8h.md#simulation__instance_8h)

## Source

```cpp


#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

```