/* * Copyright 2007, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Documentation written by: * Niels Sascha Reedijk * Corresponds to: * /trunk/headers/os/support/StopWatch.h rev 19972 * /trunk/src/kits/support/StopWatch.cpp rev 14204 */ /*! \file StopWatch.h \brief Provides the BStopWatch class. */ /*! \class BStopWatch \ingroup support \ingroup libbe \brief A timer class. This class provides method to time events. The interface is designed to behave like a physical stopwatch. It is especially useful for debugging certain parts of your code, since it can behave like a 'cheap' profiler. */ /*! \fn BStopWatch::BStopWatch(const char *name, bool silent) \brief Construct a BStopWatch object and starts the timer. The constructor creates a clean BStopWatch object. This object can be given a name. As soon as the object is created, the time will start ticking away. This class is designed to be usuable as a primitive profiling tool. If you are profiling your code with this class, pass true as the silentparameter. Whenever the object is destroyed, information on the elapsed time will be streamed to standard output. \param name The name you want to give this object. You may pass NULL. \param silent Pass true if you want to use this object as a simple profiler. */ /*! \fn BStopWatch::~BStopWatch() \brief Destructor. Destroys the object. If the object was constructed with the parameter silent set t to false, this destructor will print information on the elapsed time to standard output. */ /*! \fn void BStopWatch::Resume() \brief Resume the timer when it is in a suspended state. \see Suspend() */ /*! \fn void BStopWatch::Suspend() \brief Suspend the timer. \see Resume() */ /*! \fn bigtime_t BStopWatch::Lap() \brief Start a new lap. This method sets a lap. With the current implementation you are unable to actually retrieve the timings of the laps. This is only printed to the standard output when the object is destroyed. Thus making this tool only usuable for use when doing some profiling. \attention Please note that the current implementation is limited to 10 laps. The value returned is the time that has passed since the timer was started (and not the time that has passed since the last lap). Any lap call beyond the 10th lap will overwrite the last value. Note that if the timer is suspended, nothing happens and the method will return 0. */ /*! \fn bigtime_t BStopWatch::ElapsedTime() const \brief Get the elapsed time the object has counted. \return The elapsed time in microseconds. */ /*! \fn void BStopWatch::Reset() \brief Restart the timer. Resets the object: it clears the start time, it clears the stored laps and it restarts the timer. */ /*! \fn const char *BStopWatch::Name() const \brief Get the name. \return the name given to the object at creation time. */