File indexing completed on 2025-08-05 08:16:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef PHOOL_PHTIMESTAMP_H
0011 #define PHOOL_PHTIMESTAMP_H
0012
0013 #include "PHObject.h"
0014
0015 #include <ctime>
0016 #include <iosfwd>
0017
0018 typedef unsigned long long phtime_t;
0019
0020 class PHTimeStamp : public PHObject
0021 {
0022 public:
0023 static const unsigned long long PHFarFuture;
0024
0025 PHTimeStamp();
0026
0027 PHTimeStamp(const int, const int, const int, const int, const int, const int, const int = 0);
0028 PHTimeStamp(const time_t);
0029 void setBinTics(const phtime_t t);
0030
0031 ~PHTimeStamp() override = default;
0032
0033 public:
0034 void set(const int, const int, const int, const int, const int, const int, const int = 0);
0035
0036 void set(const char *);
0037
0038 void setToSystemTime();
0039 void setToFarFuture() { setTics(PHFarFuture); }
0040 phtime_t getBinaryTime() const { return binaryTime; }
0041 time_t getTics() const;
0042 void setTics(const time_t);
0043
0044 int isInRange(const PHTimeStamp &, const PHTimeStamp &) const;
0045
0046 int operator==(const PHTimeStamp &) const;
0047 int operator!=(const PHTimeStamp &) const;
0048 int operator>(const PHTimeStamp &) const;
0049 int operator>=(const PHTimeStamp &) const;
0050 int operator<(const PHTimeStamp &) const;
0051 int operator<=(const PHTimeStamp &) const;
0052
0053 PHTimeStamp operator+=(time_t);
0054 PHTimeStamp operator-=(time_t);
0055
0056 char *formatTimeString() const;
0057 void print() const;
0058
0059 private:
0060 static phtime_t ticsToBinaryTime(time_t);
0061 static time_t binaryTimeToTics(phtime_t);
0062
0063 protected:
0064 phtime_t binaryTime{};
0065 ClassDefOverride(PHTimeStamp, 1)
0066 };
0067
0068 PHTimeStamp operator+(const PHTimeStamp &, time_t);
0069 PHTimeStamp operator-(const PHTimeStamp &, time_t);
0070 time_t operator-(const PHTimeStamp &, const PHTimeStamp &);
0071
0072 std::ostream &operator<<(std::ostream &, const PHTimeStamp &);
0073 std::istream &operator>>(std::istream &, PHTimeStamp &);
0074
0075 #endif