/usr/include/ace/OS_NS_time.h is in libace-dev 6.0.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 | // -*- C++ -*-
//=============================================================================
/**
* @file OS_NS_time.h
*
* $Id: OS_NS_time.h 87260 2009-10-29 14:00:43Z olli $
*
* @author Douglas C. Schmidt <schmidt@cs.wustl.edu>
* @author Jesper S. M|ller<stophph@diku.dk>
* @author and a cast of thousands...
*
* Originally in OS.h.
*/
//=============================================================================
#ifndef ACE_OS_NS_TIME_H
# define ACE_OS_NS_TIME_H
# include /**/ "ace/pre.h"
# include "ace/config-all.h"
# if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
# endif /* ACE_LACKS_PRAGMA_ONCE */
#include "ace/Basic_Types.h"
#include "ace/os_include/os_time.h"
#include "ace/OS_NS_errno.h"
#include /**/ "ace/ACE_export.h"
#if defined (ACE_EXPORT_MACRO)
# undef ACE_EXPORT_MACRO
#endif
#define ACE_EXPORT_MACRO ACE_Export
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
// Type-safe, and unsigned.
static const ACE_UINT32 ACE_U_ONE_SECOND_IN_MSECS = 1000U;
static const ACE_UINT32 ACE_U_ONE_SECOND_IN_USECS = 1000000U;
static const ACE_UINT32 ACE_U_ONE_SECOND_IN_NSECS = 1000000000U;
#if defined (ACE_LACKS_STRUCT_TM)
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday; // Day of the month
int tm_mon;
int tm_year;
int tm_wday; // Day of the week
int tm_yday; // Day in the year
int tm_isdst; // >0 if dst in effet; 0 if not; <0 if unknown
};
#endif /* ACE_LACKS_STRUCT_TM */
/// Helper for the ACE_OS::timezone() function
/**
* We put all the timezone stuff that used to be in ACE_OS::timezone()
* here because on some platforms "timezone" is a macro. Because of this,
* the name ACE_OS::timezone will cause errors. So in order to use the
* macro as it is defined but also keep the name ACE_OS::timezone, we
* use timezone first here in this inline function, and then undefine
* timezone.
*/
inline long ace_timezone()
{
#if defined (ACE_WIN32)
TIME_ZONE_INFORMATION tz;
GetTimeZoneInformation (&tz);
return tz.Bias * 60;
#elif defined (ACE_HAS_TIMEZONE)
// The XPG/POSIX specification requires that tzset() be called to
// set the global variable <timezone>.
::tzset();
return timezone;
#elif defined (ACE_HAS_TIMEZONE_GETTIMEOFDAY)
// The XPG/POSIX specification does not require gettimeofday to
// set the timezone struct (it leaves the behavior of passing a
// non-null struct undefined).
long result = 0;
struct timeval time;
struct timezone zone;
ACE_UNUSED_ARG (result);
ACE_OSCALL (::gettimeofday (&time, &zone), int, -1, result);
return zone.tz_minuteswest * 60;
#else
ACE_NOTSUP_RETURN (0);
#endif
}
#if !defined (ACE_LACKS_DIFFTIME)
# if defined (_WIN32_WCE) && (_WIN32_WCE == 0x600) && !defined (_USE_32BIT_TIME_T) \
&& defined (_MSC_VER)
// The WinCE 6.0 SDK ships with a diff_time that uses __time32_t as type
// not time_t. This resolves in compilation warnings because time_t
// can be 64bit. Disable at this momemt the warning for just this method
// else we get two compile warnings on each source file that includes
// this file.
# pragma warning (push)
# pragma warning (disable: 4244)
# endif
/// Helper for the ACE_OS::difftime() function
/**
* We moved the difftime code that used to be in ACE_OS::difftime()
* here because on some platforms "difftime" is a macro. Because of this,
* the name ACE_OS::difftime will cause errors. So in order to use the
* macro as it is defined but also keep the name ACE_OS::difftime, we
* use difftime first here in this inline function, and then undefine
* it.
*/
inline double ace_difftime(time_t t1, time_t t0)
{
return difftime (t1, t0);
}
# if defined (_WIN32_WCE) && (_WIN32_WCE == 0x600) && !defined (_USE_32BIT_TIME_T) \
&& defined (_MSC_VER)
# pragma warning (pop)
# endif
#endif /* !ACE_LACKS_DIFFTIME */
# if defined (ACE_WIN32)
# if !defined (ACE_LACKS_LONGLONG_T)
// 64-bit quad-word definitions.
typedef unsigned __int64 ACE_QWORD;
typedef unsigned __int64 ACE_hrtime_t;
inline ACE_QWORD ACE_MAKE_QWORD (DWORD lo, DWORD hi) { return ACE_QWORD (lo) | (ACE_QWORD (hi) << 32); }
inline DWORD ACE_LOW_DWORD (ACE_QWORD q) { return (DWORD) q; }
inline DWORD ACE_HIGH_DWORD (ACE_QWORD q) { return (DWORD) (q >> 32); }
# else
// Can't find ANY place that ACE_QWORD is used, but hrtime_t is.
typedef ACE_UINT64 ACE_hrtime_t;
# endif // ACE_LACKS_LONGLONG_T
# elif defined (_TNS_R_TARGET)
typedef long long ACE_hrtime_t;
# else /* !ACE_WIN32 */
# if defined (ACE_HAS_HI_RES_TIMER) && !defined (ACE_LACKS_LONGLONG_T)
/* hrtime_t is defined on systems (Suns) with ACE_HAS_HI_RES_TIMER */
typedef hrtime_t ACE_hrtime_t;
# else /* ! ACE_HAS_HI_RES_TIMER || ACE_LACKS_LONGLONG_T */
typedef ACE_UINT64 ACE_hrtime_t;
# endif /* ! ACE_HAS_HI_RES_TIMER || ACE_LACKS_LONGLONG_T */
# endif /* ACE_WIN32 */
# if defined (ACE_LACKS_UNSIGNEDLONGLONG_T)
# define ACE_HRTIME_CONVERSION(VAL) ACE_U64_TO_U32(VAL)
# define ACE_HRTIME_TO_U64(VAL) ACE_U_LongLong(VAL)
# else
# define ACE_HRTIME_CONVERSION(VAL) (VAL)
# define ACE_HRTIME_TO_U64(VAL) (VAL)
# endif
namespace ACE_OS
{
enum ACE_HRTimer_Op
{
ACE_HRTIMER_START = 0x0, // Only use these if you can stand
ACE_HRTIMER_INCR = 0x1, // for interrupts to be disabled during
ACE_HRTIMER_STOP = 0x2, // the timed interval!!!!
ACE_HRTIMER_GETTIME = 0xFFFF
};
//@{ @name A set of wrappers for operations on time.
ACE_NAMESPACE_INLINE_FUNCTION
char *asctime (const struct tm *tm);
ACE_NAMESPACE_INLINE_FUNCTION
char *asctime_r (const struct tm *tm,
char *buf, int buflen);
ACE_NAMESPACE_INLINE_FUNCTION
int clock_gettime (clockid_t,
struct timespec *);
ACE_NAMESPACE_INLINE_FUNCTION
int clock_settime (clockid_t,
const struct timespec *);
ACE_NAMESPACE_INLINE_FUNCTION
ACE_TCHAR *ctime (const time_t *t);
#if defined (ACE_HAS_WINCE) && !defined (_DEBUG)
extern ACE_EXPORT_MACRO
#else
ACE_NAMESPACE_INLINE_FUNCTION
#endif
ACE_TCHAR *ctime_r (const time_t *clock, ACE_TCHAR *buf, int buflen);
#if !defined (ACE_LACKS_DIFFTIME)
ACE_NAMESPACE_INLINE_FUNCTION
#else
extern ACE_Export
#endif /* ! ACE_LACKS_DIFFTIME */
double difftime (time_t t1,
time_t t0);
ACE_NAMESPACE_INLINE_FUNCTION
ACE_hrtime_t gethrtime (const ACE_HRTimer_Op = ACE_HRTIMER_GETTIME);
ACE_NAMESPACE_INLINE_FUNCTION
struct tm *gmtime (const time_t *clock);
ACE_NAMESPACE_INLINE_FUNCTION
struct tm *gmtime_r (const time_t *clock,
struct tm *res);
ACE_NAMESPACE_INLINE_FUNCTION
struct tm *localtime (const time_t *clock);
extern ACE_Export
struct tm *localtime_r (const time_t *clock,
struct tm *res);
// Get the current time.
extern ACE_Export
time_t mktime (struct tm *timeptr);
ACE_NAMESPACE_INLINE_FUNCTION
int nanosleep (const struct timespec *requested,
struct timespec *remaining = 0);
# if defined (ACE_HAS_POWERPC_TIMER) && defined (ghs)
extern ACE_Export
void readPPCTimeBase (u_long &most,
u_long &least);
# endif /* ACE_HAS_POWERPC_TIMER && ghs */
ACE_NAMESPACE_INLINE_FUNCTION
size_t strftime (char *s,
size_t maxsize,
const char *format,
const struct tm *timeptr);
/**
* strptime wrapper. Note that the struct @a tm will always be set to
* zero
*/
ACE_NAMESPACE_INLINE_FUNCTION
char *strptime (const char *buf,
const char *format,
struct tm *tm);
# if defined (ACE_LACKS_STRPTIME)
extern ACE_Export
char *strptime_emulation (const char *buf,
const char *format,
struct tm *tm);
extern ACE_Export
int strptime_getnum (const char *buf, int *num, int *bi,
int *fi, int min, int max);
# endif /* ACE_LACKS_STRPTIME */
ACE_NAMESPACE_INLINE_FUNCTION
time_t time (time_t *tloc = 0);
ACE_NAMESPACE_INLINE_FUNCTION
long timezone (void);
// wrapper for time zone information.
ACE_NAMESPACE_INLINE_FUNCTION
void tzset (void);
//@}
} /* namespace ACE_OS */
ACE_END_VERSIONED_NAMESPACE_DECL
#if (defined (ACE_HAS_VERSIONED_NAMESPACE) \
&& ACE_HAS_VERSIONED_NAMESPACE == 1) \
&& defined (ghs) \
&& defined (ACE_HAS_PENTIUM) \
&& !defined (ACE_WIN32)
#define ACE_GETHRTIME_NAME ACE_PREPROC_CONCATENATE(ACE_,ACE_PREPROC_CONCATENATE(ACE_VERSIONED_NAMESPACE_NAME, _gethrtime))
#else
# define ACE_GETHRTIME_NAME ACE_gethrtime
#endif /* ACE_HAS_VERSIONED_NAMESPACE == 1 */
# if defined (ACE_HAS_INLINED_OSCALLS)
# if defined (ACE_INLINE)
# undef ACE_INLINE
# endif /* ACE_INLINE */
# define ACE_INLINE inline
# include "ace/OS_NS_time.inl"
# endif /* ACE_HAS_INLINED_OSCALLS */
# include /**/ "ace/post.h"
#endif /* ACE_OS_NS_TIME_H */
|