summaryrefslogtreecommitdiff
path: root/ace/OS_NS_time.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/OS_NS_time.h')
-rw-r--r--ace/OS_NS_time.h376
1 files changed, 0 insertions, 376 deletions
diff --git a/ace/OS_NS_time.h b/ace/OS_NS_time.h
deleted file mode 100644
index a0be9688f7a..00000000000
--- a/ace/OS_NS_time.h
+++ /dev/null
@@ -1,376 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file OS_NS_time.h
- *
- * $Id$
- *
- * @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/OS_NS_errno.h"
-#include "ace/Basic_Types.h"
-#include "ace/os_include/os_time.h"
-#include "ace/ACE_export.h"
-
-#if defined (ACE_EXPORT_MACRO)
-# undef ACE_EXPORT_MACRO
-#endif
-#define ACE_EXPORT_MACRO ACE_Export
-
-# if defined (ACE_HAS_BROKEN_R_ROUTINES)
-# undef ctime_r
-# undef asctime_r
-# endif /* ACE_HAS_BROKEN_R_ROUTINES */
-
-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_PSOS_HAS_TIME)
-
-// Use pSOS time, wrapped . . .
-class ACE_Export ACE_PSOS_Time_t
-{
-public:
- /// default ctor: date, time, and ticks all zeroed.
- ACE_PSOS_Time_t (void);
-
- /// ctor from a timespec_t
- ACE_PSOS_Time_t (const timespec_t& t);
-
- /// type cast operator (to a timespec_t)
- operator timespec_t ();
-
- /// static member function to get current system time
- static u_long get_system_time (ACE_PSOS_Time_t& t);
-
- /// static member function to set current system time
- static u_long set_system_time (const ACE_PSOS_Time_t& t);
-
-# if defined (ACE_PSOSIM)
- /// static member function to initialize system time, using UNIX calls
- static u_long init_simulator_time (void);
-# endif /* ACE_PSOSIM */
-
- /// max number of ticks supported in a single system call
- static const u_long max_ticks;
-private:
- // = Constants for prying info out of the pSOS time encoding.
- static const u_long year_mask;
- static const u_long month_mask;
- static const u_long day_mask;
- static const u_long hour_mask;
- static const u_long minute_mask;
- static const u_long second_mask;
- static const int year_shift;
- static const int month_shift;
- static const int hour_shift;
- static const int minute_shift;
- static const int year_origin;
- static const int month_origin;
-
- // error codes
- static const u_long err_notime; // system time not set
- static const u_long err_illdate; // date out of range
- static const u_long err_illtime; // time out of range
- static const u_long err_illticks; // ticks out of range
-
- /// date : year in bits 31-16, month in bits 15-8, day in bits 7-0
- u_long date_;
-
- /// time : hour in bits 31-16, minutes in bits 15-8, seconds in bits 7-0
- u_long time_;
-
- /// ticks: number of system clock ticks (KC_TICKS2SEC-1 max)
- u_long ticks_;
-} ;
-#endif /* ACE_PSOS_HAS_TIME */
-
-#if defined (ACE_HAS_WINCE) && (defined (_MSC_VER) && (_MSC_VER < 1400))
-// WinCE prior to Visual Studio 2005 integration doesn't have most of
-// the standard C library time functions. It also doesn't define struct tm.
-// SYSTEMTIME has pretty much the same info though, so we can map it when
-// needed. Define struct tm here and use it when needed. This is taken
-// from the standard C library.
-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_HAS_WINCE */
-
-/// 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_HAS_WINCE)
- TIME_ZONE_INFORMATION tz;
- GetTimeZoneInformation (&tz);
- return tz.Bias * 60;
-#elif defined (ACE_WIN32) && !defined (ACE_HAS_DINKUM_STL)
- return _timezone; // For Win32.
-#elif defined (ACE_WIN32) && defined (ACE_HAS_DINKUM_STL)
- time_t tod = time(0); // get current time
- time_t t1 = mktime(gmtime(&tod)); // convert without timezone
- time_t t2 = mktime(localtime(&tod)); // convert with timezone
- return difftime(t1, t2); // compute difference in seconds
-#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)
-/// 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)
-{
-# if defined (ACE_PSOS) && ! defined (ACE_PSOS_HAS_TIME)
- // simulate difftime ; just subtracting ; ACE_PSOS case
- return ((double)t1) - ((double)t0);
-# else
- return difftime (t1, t0);
-# endif /* ACE_PSOS !ACE_PSOS_HAS_TIME */
-}
-#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 (ACE_PSOS)
-typedef ACE_UINT64 ACE_hrtime_t;
-# elif defined (_TNS_R_TARGET)
-typedef long long ACE_hrtime_t;
-# else /* !ACE_WIN32 && !ACE_PSOS */
-# 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_HRTIME_T_IS_BASIC_TYPE)
-# define ACE_HRTIME_CONVERSION(VAL) (VAL)
-# define ACE_HRTIME_TO_U64(VAL) ACE_U_LongLong(VAL)
-# else
-# define ACE_HRTIME_CONVERSION(VAL) ACE_U64_TO_U32(VAL)
-# define ACE_HRTIME_TO_U64(VAL) (VAL)
-# endif
-
-namespace ACE_OS
-{
-
-# if defined (CHORUS) && !defined (CHORUS_4)
- // We must format this code as follows to avoid confusing OSE.
- enum ACE_HRTimer_Op
- {
- ACE_HRTIMER_START = K_BSTART,
- ACE_HRTIMER_INCR = K_BPOINT,
- ACE_HRTIMER_STOP = K_BSTOP,
- ACE_HRTIMER_GETTIME = 0xFFFF
- };
-# else /* ! CHORUS */
- 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
- };
-# endif /* ! CHORUS */
-
- //@{ @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 (difftime)
-# undef difftime
-# endif /* difftime */
-
-#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);
-
-#if defined (ACE_HAS_STRPTIME)
- extern ACE_Export
- char *strptime (char *buf,
- const char *format,
- struct tm *tm);
-
-# if defined (ACE_LACKS_NATIVE_STRPTIME)
- extern ACE_Export
- int strptime_getnum (char *buf, int *num, int *bi,
- int *fi, int min, int max);
-# endif /* ACE_LACKS_NATIVE_STRPTIME */
-#endif /* ACE_HAS_STRPTIME */
-
- ACE_NAMESPACE_INLINE_FUNCTION
- time_t time (time_t *tloc = 0);
-
-# if defined (timezone)
-# undef timezone
-# endif /* timezone */
-
- 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 */