00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef ATIME_H
00018 #define ATIME_H
00019
00020 #include "apr_private.h"
00021 #include "apr_time.h"
00022 #if APR_HAVE_TIME_H
00023 #include <time.h>
00024 #endif
00025
00026 struct atime_t {
00027 apr_pool_t *cntxt;
00028 apr_time_t currtime;
00029 SYSTEMTIME *explodedtime;
00030 };
00031
00032
00033
00034
00035
00036 #define APR_DELTA_EPOCH_IN_USEC APR_TIME_C(11644473600000000);
00037
00038
00039 __inline void FileTimeToAprTime(apr_time_t *result, FILETIME *input)
00040 {
00041
00042 *result = input->dwHighDateTime;
00043 *result = (*result) << 32;
00044 *result |= input->dwLowDateTime;
00045 *result /= 10;
00046 *result -= APR_DELTA_EPOCH_IN_USEC;
00047 return;
00048 }
00049
00050
00051 __inline void AprTimeToFileTime(LPFILETIME pft, apr_time_t t)
00052 {
00053 LONGLONG ll;
00054 t += APR_DELTA_EPOCH_IN_USEC;
00055 ll = t * 10;
00056 pft->dwLowDateTime = (DWORD)ll;
00057 pft->dwHighDateTime = (DWORD) (ll >> 32);
00058 return;
00059 }
00060
00061
00062 #endif
00063