xo-tokenizer2/xo-simulator/include/xo/simulator/TimeSlip.hpp
Roland Conybeare 77d12d4b91 Add 'xo-simulator/' from commit '3452e68e0c'
git-subtree-dir: xo-simulator
git-subtree-mainline: c9893dfb89
git-subtree-split: 3452e68e0c
2025-05-11 16:00:50 -05:00

39 lines
944 B
C++

/* file TimeSlip.hpp
*
* author: Roland Conybeare, Sep 2022
*/
#pragma once
//#include "time/Time.hpp"
namespace xo {
namespace sim {
/* helper class for a throttled simulation,
* where we want simulated time to evolve at a constant rate,
* relative to real elapsed time.
*
* A TimeSlip instance pins
* simulation-time coordinates to realtime coordinates
*/
class TimeSlip {
public:
using utc_nanos = xo::time::utc_nanos;
public:
TimeSlip(utc_nanos sim_tm, utc_nanos real_tm)
: sim_tm_{sim_tm}, real_tm_{real_tm} {}
utc_nanos sim_tm() const { return sim_tm_; }
utc_nanos real_tm() const { return real_tm_; }
private:
utc_nanos sim_tm_;
utc_nanos real_tm_;
}; /*TimeSlip*/
} /*namespace sim*/
} /*namespace xo*/
/* end TimeSlip.hpp */