ROOT logo
// @(#)root/base:$Id: TTime.h 20877 2007-11-19 11:17:07Z rdm $
// Author: Fons Rademakers   28/11/96

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TTime
#define ROOT_TTime


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TTime                                                                //
//                                                                      //
// Basic time type with millisecond precision.                          //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif


class TTime {

private:
   Long_t   fMilliSec;

public:
   TTime(): fMilliSec(0) { }
   TTime(Long_t msec): fMilliSec(msec) { }
   TTime(const TTime &t): fMilliSec(t.fMilliSec) { }
   virtual ~TTime() { }

   TTime& operator=(const TTime &t);

   TTime operator+=(const TTime &t);
   TTime operator-=(const TTime &t);
   TTime operator*=(const TTime &t);
   TTime operator/=(const TTime &t);

   friend TTime operator+(const TTime &t1, const TTime &t2);
   friend TTime operator-(const TTime &t1, const TTime &t2);
   friend TTime operator*(const TTime &t1, const TTime &t2);
   friend TTime operator/(const TTime &t1, const TTime &t2);

   friend Bool_t operator== (const TTime &t1, const TTime &t2);
   friend Bool_t operator!= (const TTime &t1, const TTime &t2);
   friend Bool_t operator<  (const TTime &t1, const TTime &t2);
   friend Bool_t operator<= (const TTime &t1, const TTime &t2);
   friend Bool_t operator>  (const TTime &t1, const TTime &t2);
   friend Bool_t operator>= (const TTime &t1, const TTime &t2);

   operator long() const;
   operator unsigned long() const;
   const char *AsString() const;

   ClassDef(TTime,1)  //Basic time type with milli second precision
};

inline TTime& TTime::operator= (const TTime &t)
   { fMilliSec = t.fMilliSec; return *this; }
inline TTime TTime::operator+=(const TTime &t)
   { fMilliSec += t.fMilliSec; return *this; }
inline TTime TTime::operator-=(const TTime &t)
   { fMilliSec -= t.fMilliSec; return *this; }
inline TTime TTime::operator*=(const TTime &t)
   { fMilliSec *= t.fMilliSec; return *this; }
inline TTime TTime::operator/=(const TTime &t)
   { fMilliSec /= t.fMilliSec; return *this; }
inline TTime::operator long() const
   { return fMilliSec; }
inline TTime::operator unsigned long() const
   { return (ULong_t) fMilliSec; }

inline TTime operator+(const TTime &t1, const TTime &t2)
   { return TTime(t1.fMilliSec + t2.fMilliSec); }
inline TTime operator-(const TTime &t1, const TTime &t2)
   { return TTime(t1.fMilliSec - t2.fMilliSec); }
inline TTime operator*(const TTime &t1, const TTime &t2)
   { return TTime(t1.fMilliSec * t2.fMilliSec); }
inline TTime operator/(const TTime &t1, const TTime &t2)
   { return TTime(t1.fMilliSec / t2.fMilliSec); }

inline Bool_t operator== (const TTime &t1, const TTime &t2)
   { return t1.fMilliSec == t2.fMilliSec; }
inline Bool_t operator!= (const TTime &t1, const TTime &t2)
   { return t1.fMilliSec != t2.fMilliSec; }
inline Bool_t operator< (const TTime &t1, const TTime &t2)
   { return t1.fMilliSec < t2.fMilliSec; }
inline Bool_t operator<= (const TTime &t1, const TTime &t2)
   { return t1.fMilliSec <= t2.fMilliSec; }
inline Bool_t operator> (const TTime &t1, const TTime &t2)
   { return t1.fMilliSec > t2.fMilliSec; }
inline Bool_t operator>= (const TTime &t1, const TTime &t2)
   { return t1.fMilliSec >= t2.fMilliSec; }

#endif
 TTime.h:1
 TTime.h:2
 TTime.h:3
 TTime.h:4
 TTime.h:5
 TTime.h:6
 TTime.h:7
 TTime.h:8
 TTime.h:9
 TTime.h:10
 TTime.h:11
 TTime.h:12
 TTime.h:13
 TTime.h:14
 TTime.h:15
 TTime.h:16
 TTime.h:17
 TTime.h:18
 TTime.h:19
 TTime.h:20
 TTime.h:21
 TTime.h:22
 TTime.h:23
 TTime.h:24
 TTime.h:25
 TTime.h:26
 TTime.h:27
 TTime.h:28
 TTime.h:29
 TTime.h:30
 TTime.h:31
 TTime.h:32
 TTime.h:33
 TTime.h:34
 TTime.h:35
 TTime.h:36
 TTime.h:37
 TTime.h:38
 TTime.h:39
 TTime.h:40
 TTime.h:41
 TTime.h:42
 TTime.h:43
 TTime.h:44
 TTime.h:45
 TTime.h:46
 TTime.h:47
 TTime.h:48
 TTime.h:49
 TTime.h:50
 TTime.h:51
 TTime.h:52
 TTime.h:53
 TTime.h:54
 TTime.h:55
 TTime.h:56
 TTime.h:57
 TTime.h:58
 TTime.h:59
 TTime.h:60
 TTime.h:61
 TTime.h:62
 TTime.h:63
 TTime.h:64
 TTime.h:65
 TTime.h:66
 TTime.h:67
 TTime.h:68
 TTime.h:69
 TTime.h:70
 TTime.h:71
 TTime.h:72
 TTime.h:73
 TTime.h:74
 TTime.h:75
 TTime.h:76
 TTime.h:77
 TTime.h:78
 TTime.h:79
 TTime.h:80
 TTime.h:81
 TTime.h:82
 TTime.h:83
 TTime.h:84
 TTime.h:85
 TTime.h:86
 TTime.h:87
 TTime.h:88
 TTime.h:89
 TTime.h:90
 TTime.h:91
 TTime.h:92
 TTime.h:93
 TTime.h:94
 TTime.h:95
 TTime.h:96
 TTime.h:97
 TTime.h:98
 TTime.h:99
 TTime.h:100
 TTime.h:101
 TTime.h:102
 TTime.h:103