00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012
00013
00014
00015
00016 #ifndef SIMPLE_DURATION_H
00017 #define SIMPLE_DURATION_H
00018 #include <iostream>
00019
00020
00021 #ifdef _WIN32
00022 typedef __int64 DurationT;
00023 const DurationT Billion=1000000000;
00024 #else
00025
00026
00027
00028
00029 typedef long long DurationT;
00030 const DurationT Billion=1000000000LL;
00031 #endif
00032
00033 #include "SimpleTime.h"
00034
00035 class SimpleTimeInterval;
00036
00037
00038
00048 class SimpleTimeDuration {
00049 public:
00050
00051 SimpleTimeDuration(DurationT nsec=Billion) {durationval=nsec;};
00052 SimpleTimeDuration(const SimpleTimeDuration &d) {durationval=d.duration();};
00053 SimpleTimeDuration(const SimpleTime &, const SimpleTime &);
00054 SimpleTimeDuration(const SimpleTimeInterval &);
00055 ~SimpleTimeDuration() {};
00056
00057
00058 DurationT duration() const;
00059 void setDuration(const SimpleTimeDuration &);
00060 void setDuration(const SimpleTimeInterval &);
00062 void setDuration(const SimpleTime &, const SimpleTime &);
00063 void setPlusInf();
00064 bool isPlusInf() const;
00065
00067 bool isShorterThan(const SimpleTimeDuration &) const;
00068
00069
00070 void operator = (const SimpleTimeDuration &);
00071 void operator += (const SimpleTimeDuration &);
00072 void operator -= (const SimpleTimeDuration &);
00073 void operator *= (const double &);
00074 void operator /= (const double &);
00075
00076 private:
00077 DurationT durationval;
00078 };
00079
00080 bool operator < (const SimpleTimeDuration &, const SimpleTimeDuration &);
00081 bool operator > (const SimpleTimeDuration &, const SimpleTimeDuration &);
00082 SimpleTimeDuration operator * (const SimpleTimeDuration &, const double &);
00083 SimpleTimeDuration operator / (const SimpleTimeDuration &, const double &);
00084 double operator / (const SimpleTimeDuration &, const SimpleTimeDuration &);
00085 SimpleTimeDuration operator + (const SimpleTimeDuration &,
00086 const SimpleTimeDuration &);
00087 SimpleTimeDuration operator - (const SimpleTimeDuration &,
00088 const SimpleTimeDuration &);
00089
00090 #ifndef _WIN32
00091 AIDA_STD::ostream & operator << (AIDA_STD::ostream & out, const SimpleTimeDuration &);
00092 #endif
00093
00094 #endif