Denis A Ustimenko wrote:
> On Sun, Oct 13, 2002 at 09:02:55PM -0700, Joe Conway wrote:
> > Denis A Ustimenko wrote:
> > >>Bruce, why have all precise time calculations been droped out in 1.206?
> > >>If there is no
> > >>gettimeofday in win32?
> >
> > gettimeofday was not portable to win32 (at least not that I could find) and
> > hence broke the win32 build of the clients.
> >
>
> GetSystemTimeAsFileTime should help.
>
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/getsystemtimeasfiletime.asp
It's not clear to me how we could get this into something we can deal
with like gettimeofday.
I looked at the Apache APR project, and they have a routine that returns
the microseconds since 1970 for Unix:/* NB NB NB NB This returns GMT!!!!!!!!!! */APR_DECLARE(apr_time_t)
apr_time_now(void){ struct timeval tv; gettimeofday(&tv, NULL); return tv.tv_sec * APR_USEC_PER_SEC +
tv.tv_usec;}
and for Win32:APR_DECLARE(apr_time_t) apr_time_now(void){ LONGLONG aprtime = 0; FILETIME time;#ifndef _WIN32_WCE
GetSystemTimeAsFileTime(&time);#else SYSTEMTIME st; GetSystemTime(&st); SystemTimeToFileTime(&st,
&time);#endif FileTimeToAprTime(&aprtime, &time); return aprtime; }
and FileTimeToAprTime() is:/* Number of micro-seconds between the beginning of the Windows epoch * (Jan. 1, 1601) and
theUnix epoch (Jan. 1, 1970) */#define APR_DELTA_EPOCH_IN_USEC APR_TIME_C(11644473600000000);__inline void
FileTimeToAprTime(apr_time_t*result, FILETIME *input){ /* Convert FILETIME one 64 bit number so we can work with it.
*/ *result = input->dwHighDateTime; *result = (*result) << 32; *result |= input->dwLowDateTime; *result /=
10; /* Convert from 100 nano-sec periods to micro-seconds. */ *result -= APR_DELTA_EPOCH_IN_USEC; /* Convert from
Windowsepoch to Unix epoch */ return;}
So, this is what needs to be dealt with to get it working.
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square,
Pennsylvania19073