Hiva::Rate类型定义
- Hiva::BaseRate
Rate(周期)基类,常用于循环中的sleep,使得任务按固定周期执行(sleep时会减去任务执行耗时)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
namespace Hiva { /* Class to help run loops at a desired frequency */ class BaseRate { public: BaseRate(const double frequency); explicit BaseRate(const BaseDuration &durationVal); virtual ~BaseRate() = default; virtual bool Sleep() = 0; virtual void Reset() = 0; BaseDuration CycleTime() const; BaseDuration ExpectedCycleTime() const; protected: BaseDuration expectedCycleTime_; BaseDuration actualCycleTime_; }; }
- Hiva::HivaRate
继承BaseRate,基于HivaTime进行sleep等待。
1 2 3 4 5 6 7 8 9 10 11 12 13
namespace Hiva { /* Class to help run loops at a desired frequency */ class HivaRate : public BaseRate { public: HivaRate(const double frequency); explicit HivaRate(const BaseDuration &durationVal); ~HivaRate() override = default; bool Sleep() override; void Reset() override; private: HivaTime start_; }; }
- Hiva::WallRate
继承BaseRate,基于WallTime进行sleep等待。
1 2 3 4 5 6 7 8 9 10 11 12 13
namespace Hiva { /* Class to help run loops at a desired frequency */ class WallRate : public BaseRate { public: WallRate(const double frequency); explicit WallRate(const BaseDuration &durationVal); ~WallRate() override = default; bool Sleep() override; void Reset() override; private: WallTime start_; }; }
父主题: 类型定义