diff --git a/src/gdd/aitHelpers.cc b/src/gdd/aitHelpers.cc index 5aafc0bd0..10008476f 100644 --- a/src/gdd/aitHelpers.cc +++ b/src/gdd/aitHelpers.cc @@ -200,6 +200,24 @@ aitTimeStamp aitTimeStamp::operator = (const struct epicsTimeStamp &rhs) return *this; } +aitTimeStamp :: aitTimeStamp ( const epicsTime & ts ) +{ + epicsTimeStamp ets = ts; + *this = ets; +} + +aitTimeStamp aitTimeStamp :: operator = ( const epicsTime & rhs ) +{ + epicsTimeStamp ets = rhs; + return *this = ets; +} + +aitTimeStamp :: operator epicsTime () const +{ + epicsTimeStamp ets = *this; + return epicsTime ( ets ); +} + aitTimeStamp::operator struct timespec () const { struct timespec ts; diff --git a/src/gdd/aitHelpers.h b/src/gdd/aitHelpers.h index e08d21817..70bf1beb6 100644 --- a/src/gdd/aitHelpers.h +++ b/src/gdd/aitHelpers.h @@ -39,6 +39,7 @@ inline char* strDup(const char* x) struct timespec; struct epicsTimeStamp; +class epicsTime; class gdd; class epicsShareClass aitTimeStamp { @@ -102,8 +103,13 @@ public: // operator struct epicsTimeStamp () const; void get (struct epicsTimeStamp &) const; - aitTimeStamp (const struct epicsTimeStamp &ts); - aitTimeStamp operator = (const struct epicsTimeStamp &rhs); + aitTimeStamp (const epicsTimeStamp &ts); + aitTimeStamp operator = (const epicsTimeStamp &rhs); + + // conversion to from epicsTime + aitTimeStamp (const epicsTime &ts); + aitTimeStamp operator = (const epicsTime &rhs); + operator epicsTime () const; static aitTimeStamp getCurrent(); diff --git a/src/libCom/osi/epicsTime.cpp b/src/libCom/osi/epicsTime.cpp index 91c12013d..264e8d845 100644 --- a/src/libCom/osi/epicsTime.cpp +++ b/src/libCom/osi/epicsTime.cpp @@ -49,17 +49,6 @@ static const unsigned nSecPerSec = 1000u * uSecPerSec; static const unsigned nSecPerUSec = 1000u; static const unsigned secPerMin = 60u; -// -// force this module to include code that can convert -// to GDD's aitTimeStamp, but dont require that it must -// link with gdd. Therefore, gdd.h is not included here. -// -class aitTimeStamp { -public: - epicsUInt32 tv_sec; - epicsUInt32 tv_nsec; -}; - static const unsigned tmStructEpochYear = 1900; static const unsigned epicsEpochYear = 1990; @@ -378,35 +367,6 @@ epicsTime::epicsTime (const struct timeval &ts) this->addNanoSec (ts.tv_usec * nSecPerUSec); } -// -// operator aitTimeStamp () -// -epicsTime::operator aitTimeStamp () const -{ - aitTimeStamp ts; - time_t_wrapper ansiTimeTicks; - - ansiTimeTicks = *this; - ts.tv_sec = ansiTimeTicks.ts; - ts.tv_nsec = this->nSec; - return ts; -} - -// -// epicsTime (const aitTimeStamp &ts) -// -epicsTime::epicsTime (const aitTimeStamp &ts) -{ - time_t_wrapper ansiTimeTicks; - - ansiTimeTicks.ts = ts.tv_sec; - *this = epicsTime (ansiTimeTicks); - - unsigned long secAdj = ts.tv_nsec / nSecPerSec; - unsigned long nSecAdj = ts.tv_nsec % nSecPerSec; - *this = epicsTime (this->secPastEpoch+secAdj, this->nSec+nSecAdj); -} - // 631152000 (at posix epic) + 2272060800 (btw posix and epics epoch) + // 15 ( leap seconds ) static const unsigned long epicsEpocSecsPastEpochNTP = 2903212815u; diff --git a/src/libCom/osi/epicsTime.h b/src/libCom/osi/epicsTime.h index 1a988564a..bc8a5604d 100644 --- a/src/libCom/osi/epicsTime.h +++ b/src/libCom/osi/epicsTime.h @@ -35,8 +35,6 @@ struct l_fp; /* NTP timestamp */ #ifdef __cplusplus -class aitTimeStamp; /* GDD*/ - /* * extend ANSI C RTL "struct tm" to include nano seconds within a second * and a struct tm that is adjusted for the local timezone @@ -127,11 +125,6 @@ public: epicsTime ( const l_fp & ); epicsTime & operator = ( const l_fp & ); - /* convert to and from GDDs aitTimeStamp format */ - operator aitTimeStamp () const; - epicsTime ( const aitTimeStamp & ); - epicsTime & operator = ( const aitTimeStamp & ); - /* convert to and from WIN32s FILETIME (implemented only on WIN32) */ operator struct _FILETIME () const; epicsTime ( const struct _FILETIME & ); @@ -310,12 +303,6 @@ inline epicsTime & epicsTime::operator = ( const struct timespec & rhs ) return *this; } -inline epicsTime & epicsTime::operator = ( const aitTimeStamp & rhs ) -{ - *this = epicsTime ( rhs ); - return *this; -} - inline epicsTime & epicsTime::operator = ( const epicsTimeStamp & rhs ) { *this = epicsTime ( rhs );