- hourTy GetHour() const; // hour in local time
- hourTy GetHourGMT() const; // hour in GMT
- minuteTy GetMinute() const; // minute in local time
- minuteTy GetMinuteGMT() const; // minute in GMT
- secondTy GetSecond() const; // second in local time or GMT
- clockTy GetSeconds() const { return sec; }
- secondTy GetSecondGMT() const ;
- wxTime Max(const wxTime&) const;
- wxTime Min(const wxTime&) const;
- static void SetFormat(const tFormat lFormat = wx12h,
- const tPrecision lPrecision = wxStdMinSec);
- wxChar *FormatTime() const;
-/*
- virtual int compare(const Object&) const;
- virtual void deepenShallowCopy(); // {}
- virtual unsigned hash() const;
- virtual bool isEqual(const Object&) const;
- virtual void printOn(ostream& strm =cout) const;
- virtual const Class* species() const;
-*/
-};
+/* Two wrapper functions for thread safety */
+#ifdef HAVE_LOCALTIME_R
+#define wxLocaltime_r localtime_r
+#else
+WXDLLIMPEXP_BASE struct tm *wxLocaltime_r(const time_t*, struct tm*);
+#if wxUSE_THREADS && !defined(__WINDOWS__) && !defined(__WATCOMC__)
+ // On Windows, localtime _is_ threadsafe!
+#warning using pseudo thread-safe wrapper for localtime to emulate localtime_r
+#endif
+#endif