Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:16:20

0001 //  The PHOOL's Software
0002 //  Copyright (C) PHENIX collaboration, 1999
0003 //
0004 //  Purpose: PHENIX - wide time stamp class
0005 //
0006 //  Declaration of class PHTimeStamp
0007 //
0008 //  Author: Matthias Messer
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;  // set to ULLONG_MAX
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 /* PHOOL_PHTIMESTAMP_H */