From 5fb98c22c214c72c47f65f92a8db3f3e34622d94 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 25 Jun 2003 23:49:45 +0000 Subject: [PATCH] extracted wxStopWatch and global timer functions in a separate file git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/stopwatch.h | 96 ++++++++++++++++++++++++++++++++++++++++++ include/wx/timer.h | 83 +----------------------------------- 2 files changed, 98 insertions(+), 81 deletions(-) create mode 100644 include/wx/stopwatch.h diff --git a/include/wx/stopwatch.h b/include/wx/stopwatch.h new file mode 100644 index 0000000000..52773f969d --- /dev/null +++ b/include/wx/stopwatch.h @@ -0,0 +1,96 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/stopwatch.h +// Purpose: wxStopWatch and global time-related functions +// Author: Julian Smart (wxTimer), Sylvain Bougnoux (wxStopWatch) +// Created: 26.06.03 (extracted from wx/timer.h) +// RCS-ID: $Id$ +// Copyright: (c) 1998-2003 wxWindows team +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_STOPWATCH_H_ +#define _WX_STOPWATCH_H_ +// +// ---------------------------------------------------------------------------- +// wxStopWatch: measure time intervals with up to 1ms resolution +// ---------------------------------------------------------------------------- + +#if wxUSE_STOPWATCH + +class WXDLLEXPORT wxStopWatch +{ +public: + // ctor starts the stop watch + wxStopWatch() { m_pauseCount = 0; Start(); } + + // start the stop watch at the moment t0 + void Start(long t0 = 0); + + // pause the stop watch + void Pause() + { + if ( !m_pauseCount++ ) + m_pause = GetElapsedTime(); + } + + // resume it + void Resume() + { + wxASSERT_MSG( m_pauseCount > 0, + _T("Resuming stop watch which is not paused") ); + + if ( !--m_pauseCount ) + Start(m_pause); + } + + // get elapsed time since the last Start() in milliseconds + long Time() const; + +protected: + // returns the elapsed time since t0 + long GetElapsedTime() const; + +private: + // the time of the last Start() + wxLongLong m_t0; + + // the time of the last Pause() (only valid if m_pauseCount > 0) + long m_pause; + + // if > 0, the stop watch is paused, otherwise it is running + int m_pauseCount; +}; + +#endif // wxUSE_STOPWATCH + +#if wxUSE_LONGLONG + +// Starts a global timer +// -- DEPRECATED: use wxStopWatch instead +void WXDLLEXPORT wxStartTimer(); + +// Gets elapsed milliseconds since last wxStartTimer or wxGetElapsedTime +// -- DEPRECATED: use wxStopWatch instead +long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE); + +#endif // wxUSE_LONGLONG + +// ---------------------------------------------------------------------------- +// global time functions +// ---------------------------------------------------------------------------- + +// Get number of seconds since local time 00:00:00 Jan 1st 1970. +extern long WXDLLEXPORT wxGetLocalTime(); + +// Get number of seconds since GMT 00:00:00, Jan 1st 1970. +extern long WXDLLEXPORT wxGetUTCTime(); + +#if wxUSE_LONGLONG +// Get number of milliseconds since local time 00:00:00 Jan 1st 1970 +extern wxLongLong WXDLLEXPORT wxGetLocalTimeMillis(); +#endif // wxUSE_LONGLONG + +#define wxGetCurrentTime() wxGetLocalTime() + +#endif // _WX_STOPWATCH_H_ + diff --git a/include/wx/timer.h b/include/wx/timer.h index 77d2710666..3c0b0b7f37 100644 --- a/include/wx/timer.h +++ b/include/wx/timer.h @@ -22,6 +22,8 @@ #include "wx/longlong.h" #include "wx/event.h" +#include "wx/stopwatch.h" // for backwards compatibility + #if wxUSE_GUI && wxUSE_TIMER // ---------------------------------------------------------------------------- @@ -189,86 +191,5 @@ typedef void (wxEvtHandler::*wxTimerEventFunction)(wxTimerEvent&); #endif // wxUSE_GUI && wxUSE_TIMER -// ---------------------------------------------------------------------------- -// wxStopWatch: measure time intervals with up to 1ms resolution -// ---------------------------------------------------------------------------- - -#if wxUSE_STOPWATCH - -class WXDLLEXPORT wxStopWatch -{ -public: - // ctor starts the stop watch - wxStopWatch() { m_pauseCount = 0; Start(); } - - // start the stop watch at the moment t0 - void Start(long t0 = 0); - - // pause the stop watch - void Pause() - { - if ( !m_pauseCount++ ) - m_pause = GetElapsedTime(); - } - - // resume it - void Resume() - { - wxASSERT_MSG( m_pauseCount > 0, - _T("Resuming stop watch which is not paused") ); - - if ( !--m_pauseCount ) - Start(m_pause); - } - - // get elapsed time since the last Start() in milliseconds - long Time() const; - -protected: - // returns the elapsed time since t0 - long GetElapsedTime() const; - -private: - // the time of the last Start() - wxLongLong m_t0; - - // the time of the last Pause() (only valid if m_pauseCount > 0) - long m_pause; - - // if > 0, the stop watch is paused, otherwise it is running - int m_pauseCount; -}; - -#endif // wxUSE_STOPWATCH - -#if wxUSE_LONGLONG - -// Starts a global timer -// -- DEPRECATED: use wxStopWatch instead -void WXDLLEXPORT wxStartTimer(); - -// Gets elapsed milliseconds since last wxStartTimer or wxGetElapsedTime -// -- DEPRECATED: use wxStopWatch instead -long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE); - -#endif // wxUSE_LONGLONG - -// ---------------------------------------------------------------------------- -// global time functions -// ---------------------------------------------------------------------------- - -// Get number of seconds since local time 00:00:00 Jan 1st 1970. -extern long WXDLLEXPORT wxGetLocalTime(); - -// Get number of seconds since GMT 00:00:00, Jan 1st 1970. -extern long WXDLLEXPORT wxGetUTCTime(); - -#if wxUSE_LONGLONG -// Get number of milliseconds since local time 00:00:00 Jan 1st 1970 -extern wxLongLong WXDLLEXPORT wxGetLocalTimeMillis(); -#endif // wxUSE_LONGLONG - -#define wxGetCurrentTime() wxGetLocalTime() - #endif // _WX_TIMER_H_BASE_