// // Created by zx on 22-12-1. // #include "time_data.h" template TimedLockData::TimedLockData() { timeout_=0.1; } template void TimedLockData::reset(const T& tdata,double timeout) { std::unique_lock lock(mutex_); data_=tdata; timeout_=timeout; tp_=std::chrono::steady_clock::now(); } template bool TimedLockData::timeout() { auto now=std::chrono::steady_clock::now(); auto duration = std::chrono::duration_cast(now - tp_); double time = double(duration.count()) * std::chrono::microseconds::period::num / std::chrono::microseconds::period::den; return time>timeout_; } template T& TimedLockData::Data() { std::unique_lock lock(mutex_); return data_; }