/* * ===================================================================================== * * Filename: timed_queue.h * * Description: * * Version: 1.0 * Created: 2021年04月12日 09时36分04秒 * Revision: none * Compiler: gcc * * Author: Li Chao (), lichao@aiotlink.com * Organization: * * ===================================================================================== */ #ifndef TIMED_QUEUE_Y2YLRBS3 #define TIMED_QUEUE_Y2YLRBS3 #include "bh_util.h" #include #include #include template class TimedData { public: typedef ClockType Clock; typedef typename Clock::time_point TimePoint; typedef typename Clock::duration Duration; TimedData(const TimePoint &expire, const Data &data) : expire_(expire), data_(data) {} TimedData(const TimePoint &expire, Data &&data) : expire_(expire), data_(std::move(data)) {} bool Expired() const { return Clock::now() > expire_; } const TimePoint &expire() const { return expire_; } Data &data() { return data_; } Data const &data() const { return data_; } private: TimePoint expire_; Data data_; }; #endif // end of include guard: TIMED_QUEUE_Y2YLRBS3