Add 'xo-simulator/' from commit '3452e68e0c'

git-subtree-dir: xo-simulator
git-subtree-mainline: c9893dfb89
git-subtree-split: 3452e68e0c
This commit is contained in:
Roland Conybeare 2025-05-11 16:00:50 -05:00
commit 77d12d4b91
15 changed files with 1522 additions and 0 deletions

View file

@ -0,0 +1,39 @@
/* 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 */