Skip to main content

AVxcelerate Simulation Framework 2026 R1 SP01

File i_clock.h

Last update: 22.04.2026

Location: core/time/i_clock/i_clock.h

Classes

Namespaces

Includes

Included by

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

Connect with Ansys