昇腾社区首页
中文
注册

Hiva::Duration类型定义

  • Hiva::BaseDuration

    duration(时长)基类,实现了基础运算接口,duration=time1-time2。HivaDuration、WallDuration均继承BaseDuration,支持BaseTime的所有运算操作,SteadyTime也是使用WallDuration。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    namespace Hiva {
    /* Base class for Duration implementations. */
    class BaseDuration {
    public:
        BaseDuration();
        explicit BaseDuration(const double doubleSec);
        BaseDuration(const int32_t secVal, const int32_t nsecVal);
        virtual ~BaseDuration() = default;
        bool FromSec(const double doubleSec);
        bool FromNSec(const int64_t int64Nsec);
        double ToSec() const;
        int64_t ToNSec() const;
        bool IsZero() const;
        BaseDuration operator+(const BaseDuration &rhs) const;
        BaseDuration operator-(const BaseDuration &rhs) const;
        BaseDuration operator-() const;
        BaseDuration operator*(const double scale) const;
        BaseDuration &operator+=(const BaseDuration &rhs);
        BaseDuration &operator-=(const BaseDuration &rhs);
        BaseDuration &operator*=(const double scale);
        bool operator==(const BaseDuration &rhs) const;
        bool operator!=(const BaseDuration &rhs) const;
        bool operator>(const BaseDuration &rhs) const;
        bool operator<(const BaseDuration &rhs) const;
        bool operator>=(const BaseDuration &rhs) const;
        bool operator<=(const BaseDuration &rhs) const;
        int32_t sec;
        int32_t nsec;
    };
    std::ostream &operator<<(std::ostream &outStream, const BaseDuration &rhs);
    }
    
  • Hiva::HivaDuration

    Hiva时长,继承BaseDuration,支持BaseDuration的所有运算操作。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    namespace Hiva {
    /* Duration representation for use with the Time class. */
    class HivaDuration : public BaseDuration {
    public:
        HivaDuration();
        explicit HivaDuration(const double doubleSec);
        explicit HivaDuration(const BaseRate &rateVal);
        HivaDuration(const BaseDuration &durationVal);
        HivaDuration(const int32_t secVal, const int32_t nsecVal);
        ~HivaDuration() override = default;
        bool Sleep() const;
    };
    }
    
  • Hiva::WallDuration

    系统时长,继承BaseDuration,支持BaseDuration的所有运算操作。

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    namespace Hiva {
    /* Duration representation for use with the WallTime class. */
    class WallDuration : public BaseDuration {
    public:
        WallDuration();
        explicit WallDuration(const double doubleSec);
        explicit WallDuration(const BaseRate &rateVal);
        WallDuration(const BaseDuration &durationVal);
        WallDuration(const int32_t secVal, const int32_t nsecVal);
        ~WallDuration() override = default;
        bool Sleep() const;
    };
    }