X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/12f5e1e78fe906050ff2fee9529476db332633f0..1b7751aaa9a86d76a850b9267bc0c201e3cea30f:/interface/wx/stopwatch.h diff --git a/interface/wx/stopwatch.h b/interface/wx/stopwatch.h index bd06d1d38b..d67fa9ab9e 100644 --- a/interface/wx/stopwatch.h +++ b/interface/wx/stopwatch.h @@ -3,17 +3,18 @@ // Purpose: interface of wxStopWatch // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @class wxStopWatch - The wxStopWatch class allow you to measure time intervals. For example, you may - use it to measure the time elapsed by some function: + The wxStopWatch class allow you to measure time intervals. + + For example, you may use it to measure the time elapsed by some function: @code - wxStopWatch sw; + wxStopWatch sw; CallLongRunningFunction(); wxLogMessage("The long running function took %ldms to execute", sw.Time()); @@ -24,6 +25,13 @@ wxLogMessage("And calling it twice took $ldms in all", sw.Time()); @endcode + Since wxWidgets 2.9.3 this class uses @c ::QueryPerformanceCounter() + function under MSW to measure the elapsed time. It provides higher + precision than the usual timer functions but can suffer from bugs in its + implementation in some Windows XP versions. If you encounter such problems, + installing a Microsoft hot fix from http://support.microsoft.com/?id=896256 + could be necessary. + @library{wxbase} @category{misc} @@ -38,8 +46,8 @@ public: wxStopWatch(); /** - Pauses the stop watch. Call Resume() to resume - time measuring again. + Pauses the stop watch. Call Resume() to resume time measuring again. + If this method is called several times, @c Resume() must be called the same number of times to really resume the stop watch. You may, however, call Start() to resume it unconditionally. @@ -47,59 +55,36 @@ public: void Pause(); /** - Resumes the stop watch which had been paused with - Pause(). + Resumes the stop watch which had been paused with Pause(). */ void Resume(); /** (Re)starts the stop watch with a given initial value. + + The stopwatch will always be running after calling Start(), even if + Pause() had been called before and even if it had been called multiple + times. */ void Start(long milliseconds = 0); /** - Returns the time in milliseconds since the start (or restart) or the last call - of - Pause(). + Returns the time in milliseconds since the start (or restart) or the last + call of Pause(). + + @see TimeInMicro() */ long Time() const; -}; - - - -// ============================================================================ -// Global functions/macros -// ============================================================================ - -/** @ingroup group_funcmacro_time */ -//@{ - -/** - Returns the number of seconds since local time 00:00:00 Jan 1st 1970. - - @see wxDateTime::Now() - @header{wx/stopwatch.h} -*/ -long wxGetLocalTime(); - -/** - Returns the number of milliseconds since local time 00:00:00 Jan 1st 1970. - - @see wxDateTime::Now(), wxLongLong - - @header{wx/stopwatch.h} -*/ -wxLongLong wxGetLocalTimeMillis(); - -/** - Returns the number of seconds since GMT 00:00:00 Jan 1st 1970. - - @see wxDateTime::Now() + /** + Returns elapsed time in microseconds. - @header{wx/stopwatch.h} -*/ -long wxGetUTCTime(); + This method is similar to Time() but returns the elapsed time in + microseconds and not milliseconds. Notice that not all platforms really + can measure times with this precision. -//@} + @since 2.9.3 + */ + wxLongLong TimeInMicro() const; +};