Line data Source code
1 : #include "TimeDuration.h" 2 : 3 : #include "Time_Helper.h" 4 : 5 : OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL 6 : 7 : namespace OpenDDS { 8 : namespace DCPS { 9 : 10 : ACE_INLINE 11 : TimeDuration 12 0 : TimeDuration::from_msec(const ACE_UINT64& ms) 13 : { 14 0 : ACE_Time_Value rv; 15 0 : rv.set_msec(ms); 16 0 : return TimeDuration(rv); 17 0 : } 18 : 19 : ACE_INLINE 20 : TimeDuration 21 97 : TimeDuration::from_double(double duration) 22 : { 23 97 : ACE_Time_Value rv; 24 97 : rv.set(duration); 25 194 : return TimeDuration(rv); 26 97 : } 27 : 28 : ACE_INLINE 29 216 : TimeDuration::TimeDuration() 30 216 : : value_(ACE_Time_Value()) 31 : { 32 216 : } 33 : 34 : ACE_INLINE 35 198 : TimeDuration::TimeDuration(const TimeDuration& other) 36 198 : : value_(other.value_) 37 : { 38 198 : } 39 : 40 : ACE_INLINE 41 107 : TimeDuration::TimeDuration(const ACE_Time_Value& ace_time_value) 42 107 : : value_(ace_time_value) 43 : { 44 107 : } 45 : 46 : ACE_INLINE 47 277 : TimeDuration::TimeDuration(time_t sec, suseconds_t usec) 48 277 : : value_(sec, usec) 49 : { 50 277 : } 51 : 52 : ACE_INLINE 53 3 : TimeDuration::TimeDuration(const DDS::Duration_t& dds_duration) 54 3 : : value_(duration_to_time_value(dds_duration)) 55 : { 56 3 : } 57 : 58 : ACE_INLINE 59 : const ACE_Time_Value& 60 12168 : TimeDuration::value() const 61 : { 62 12168 : return value_; 63 : } 64 : 65 : ACE_INLINE 66 : void 67 : TimeDuration::value(const ACE_Time_Value& ace_time_value) 68 : { 69 : value_ = ace_time_value; 70 : } 71 : 72 : ACE_INLINE 73 : bool 74 3 : TimeDuration::is_zero() const 75 : { 76 3 : return *this == zero_value; 77 : } 78 : 79 : ACE_INLINE 80 : bool 81 0 : TimeDuration::is_max() const 82 : { 83 0 : return *this == max_value; 84 : } 85 : 86 : ACE_INLINE 87 : DDS::Duration_t 88 1 : TimeDuration::to_dds_duration() const 89 : { 90 1 : return time_value_to_duration(value()); 91 : } 92 : 93 : ACE_INLINE 94 : TimeDuration& 95 0 : TimeDuration::operator+=(const TimeDuration& other) 96 : { 97 0 : value_ += other.value(); 98 0 : return *this; 99 : } 100 : 101 : ACE_INLINE 102 : TimeDuration& 103 0 : TimeDuration::operator-=(const TimeDuration& other) 104 : { 105 0 : value_ -= other.value(); 106 0 : return *this; 107 : } 108 : 109 : ACE_INLINE 110 : TimeDuration& 111 : TimeDuration::operator*=(double other) 112 : { 113 : value_ *= other; 114 : return *this; 115 : } 116 : 117 : ACE_INLINE 118 : TimeDuration& TimeDuration::operator/=(double other) 119 : { 120 : value_ *= (1.0 / other); 121 : return *this; 122 : } 123 : 124 : ACE_INLINE 125 : TimeDuration& 126 40 : TimeDuration::operator=(const TimeDuration& other) 127 : { 128 40 : value_ = other.value(); 129 40 : return *this; 130 : } 131 : 132 : ACE_INLINE 133 : TimeDuration& 134 0 : TimeDuration::operator=(const time_t& other) 135 : { 136 0 : value_ = other; 137 0 : return *this; 138 : } 139 : 140 : ACE_INLINE 141 : TimeDuration 142 10 : operator+(const TimeDuration& x, const TimeDuration& y) 143 : { 144 10 : return TimeDuration(x.value() + y.value()); 145 : } 146 : 147 : ACE_INLINE 148 : TimeDuration 149 0 : operator-(const TimeDuration& x, const TimeDuration& y) 150 : { 151 0 : return TimeDuration(x.value() - y.value()); 152 : } 153 : 154 : ACE_INLINE 155 : TimeDuration 156 : operator-(const TimeDuration& x) 157 : { 158 : return TimeDuration::zero_value - x; 159 : } 160 : 161 : ACE_INLINE 162 : TimeDuration 163 0 : operator*(double x, const TimeDuration& y) 164 : { 165 0 : return TimeDuration(x * y.value()); 166 : } 167 : 168 : ACE_INLINE 169 : TimeDuration 170 0 : operator*(const TimeDuration& x, double y) 171 : { 172 0 : return TimeDuration(x.value() * y); 173 : } 174 : 175 : ACE_INLINE 176 0 : TimeDuration operator/(const TimeDuration& x, double y) 177 : { 178 0 : return TimeDuration(x.value() * (1.0 / y)); 179 : } 180 : 181 : ACE_INLINE 182 0 : double operator/(const TimeDuration& x, const TimeDuration& y) 183 : { 184 0 : return (double(x.value().sec()) * 1000000 + x.value().usec()) / 185 0 : (double(y.value().sec()) * 1000000 + y.value().usec()); 186 : } 187 : 188 : ACE_INLINE 189 : bool 190 5 : operator<(const TimeDuration& x, const TimeDuration& y) 191 : { 192 5 : return x.value() < y.value(); 193 : } 194 : 195 : ACE_INLINE 196 : bool 197 5531 : operator>(const TimeDuration& x, const TimeDuration& y) 198 : { 199 5531 : return x.value() > y.value(); 200 : } 201 : 202 : ACE_INLINE 203 : bool 204 : operator<=(const TimeDuration& x, const TimeDuration& y) 205 : { 206 : return x.value() <= y.value(); 207 : } 208 : 209 : ACE_INLINE 210 : bool 211 0 : operator>=(const TimeDuration& x, const TimeDuration& y) 212 : { 213 0 : return x.value() >= y.value(); 214 : } 215 : 216 : ACE_INLINE 217 : bool 218 33 : operator==(const TimeDuration& x, const TimeDuration& y) 219 : { 220 33 : return x.value() == y.value(); 221 : } 222 : 223 : ACE_INLINE 224 : bool 225 10 : operator!=(const TimeDuration& x, const TimeDuration& y) 226 : { 227 10 : return x.value() != y.value(); 228 : } 229 : 230 : } 231 : } 232 : 233 : OPENDDS_END_VERSIONED_NAMESPACE_DECL