PHTimeStamp.h
//-----------------------------------------------------------------------------
// $Header: /afs/rhic/phenix/PHENIX_CVS/offline/database/pdbcal/PHTimeStamp.h,v 1.6 2000/06/04 04:13:55 purschke Exp $
//
// The PHOOL's Software
// Copyright (C) PHENIX collaboration, 1999
//
// Purpose: PHENIX - wide time stamp class
//
// Declaration of class PHTimeStamp
//
// Author: Matthias Messer
//-----------------------------------------------------------------------------
#ifndef __PHTIMESTAMP_H__
#define __PHTIMESTAMP_H__
#include "iostream.h"
#include <time.h>
typedef unsigned long long phtime_t;
class PHTimeStamp {
public:
enum { PHFarFuture = 2147483647 };
PHTimeStamp();
PHTimeStamp(int, int, int, int, int, int, int = 0);
PHTimeStamp(time_t);
~PHTimeStamp();
public:
void set(int, int, int, int, int, int, int = 0);
void set(const char *);
void setToSystemTime();
void setToFarFuture() { setTics(PHFarFuture); }
phtime_t getBinaryTime() const { return binaryTime; }
time_t getTics() const;
void setTics(time_t);
int isInRange(const PHTimeStamp &, const PHTimeStamp &);
void print();
int operator == (const PHTimeStamp &) const;
int operator != (const PHTimeStamp &) const;
int operator > (const PHTimeStamp &) const;
int operator >= (const PHTimeStamp &) const;
int operator < (const PHTimeStamp &) const;
int operator <= (const PHTimeStamp &) const;
PHTimeStamp & operator = (const PHTimeStamp &);
PHTimeStamp operator += (time_t);
PHTimeStamp operator -= (time_t);
char * formatTimeString() const;
void print() const;
private:
phtime_t ticsToBinaryTime(time_t) const;
time_t binaryTimeToTics(phtime_t) const;
protected:
phtime_t binaryTime;
};
PHTimeStamp operator + (const PHTimeStamp &, time_t);
PHTimeStamp operator - (const PHTimeStamp &, time_t);
time_t operator - (const PHTimeStamp &, const PHTimeStamp &);
ostream & operator << (ostream &, const PHTimeStamp &);
istream & operator >> (istream &, PHTimeStamp &);
#endif /* __PHTIMESTAMP_H__ */