fixed mantis 266
epicsTime <=> aitTimeStamp conversions dont work on 64 bit hosts
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user