33#include "XrdSys/XrdWin32.hh"
47 gettimeofday(&LastReport, 0);
48 LastReport.tv_sec = LastReport.tv_sec - tbeg.tv_sec;
49 LastReport.tv_usec = LastReport.tv_usec - tbeg.tv_usec;
50 if (LastReport.tv_usec < 0) {LastReport.tv_sec--; LastReport.tv_usec += 1000000;}
69long SecondsOfDay(time_t t)
72 localtime_r(&t, &tmv);
73 return tmv.tm_hour*3600L + tmv.tm_min*60L + tmv.tm_sec;
83 if (tnow == 0 || tnow == 1) {add_time = tnow; tnow = time(0);}
86 time_t midnight = tnow - SecondsOfDay(tnow);
87 if (add_time) midnight += 86400;
95 long secs = SecondsOfDay(midnight);
96 if (secs >= 43200) midnight += 86400 - secs;
97 else if (secs && !SecondsOfDay(midnight - secs)) midnight -= secs;
107 unsigned long current_time;
111 gettimeofday(&LastReport, 0);
112 current_time = (
unsigned long)LastReport.tv_sec;
116 LastReport.tv_sec = LastReport.tv_sec - StopWatch.tv_sec;
117 LastReport.tv_usec = LastReport.tv_usec - StopWatch.tv_usec;
118 if (LastReport.tv_usec < 0)
119 {LastReport.tv_sec--; LastReport.tv_usec += 1000000;}
130 unsigned long report_time =
Report();
134 Total_Time +=
static_cast<double>(LastReport.tv_sec) +
135 static_cast<double>(LastReport.tv_usec/1000)/1000.0;
146 unsigned long report_time =
Report();
150 Total_Time += (
unsigned long)LastReport.tv_sec*1000 +
151 (
unsigned long)(LastReport.tv_usec/1000);
162 unsigned long report_time =
Report();
166 Total_Time += (
unsigned long long)LastReport.tv_sec*1000 +
167 (
unsigned long long)(LastReport.tv_usec/1000);
178 unsigned long report_time =
Report();
182 Total_Time.tv_sec += LastReport.tv_sec;
183 Total_Time.tv_usec += LastReport.tv_usec;
184 if (Total_Time.tv_usec > 1000000) {Total_Time.tv_sec++;
185 Total_Time.tv_usec -= 1000000;}
199 struct timespec naptime, waketime;
203 naptime.tv_sec = sec;
208 while(nanosleep(&naptime, &waketime) && EINTR == errno)
209 {naptime.tv_sec = waketime.tv_sec;
210 naptime.tv_nsec = waketime.tv_nsec;
227 minutes = minutes%60;
229 snprintf(buff, blen-1,
"%d:%02d:%02d", hours, minutes, sec);
240 time_t currTime = time(0);
241 time_t currTimeGMT = 0;
244 gmtime_r( &currTime, &ptm );
245 currTimeGMT = mktime( &ptm );
247 currTimeGMT /= 60*60;
248 return currTime - currTimeGMT;
258 struct timespec naptime, waketime;
262 naptime.tv_sec = mills/1000;
263 naptime.tv_nsec = (mills%1000)*1000000;
267 while(nanosleep(&naptime, &waketime) && EINTR == errno)
268 {naptime.tv_sec = waketime.tv_sec;
269 naptime.tv_nsec = waketime.tv_nsec;
286 timespec Midnite = {
Midnight(1), 0};
287 while(clock_nanosleep(CLOCK_REALTIME,TIMER_ABSTIME,&Midnite,0) == EINTR) {}
289 timespec tleft, Midnite = {
Midnight(1) - time(0), 0};
291do{
while(nanosleep(&Midnite, &tleft) && EINTR == errno)
292 {Midnite.tv_sec = tleft.tv_sec;
293 Midnite.tv_nsec = tleft.tv_nsec;
295 if (
Midnight(1) - time(0) >= 60)
break;
static void Wait4Midnight()
static char * s2hms(int sec, char *buff, int blen)
static time_t Midnight(time_t tnow=0)
struct timeval * Delta_Time(struct timeval &tbeg)
static void Snooze(int seconds)
unsigned long Report(double &)
static void Wait(int milliseconds)