mirror of
https://github.com/debauchee/barrier.git
synced 2025-07-30 22:59:41 +02:00
Initial commit of the synergy trunk sources from sf.net
This commit is contained in:
commit
958fa80d1d
429 changed files with 96848 additions and 0 deletions
108
lib/base/CStopwatch.h
Normal file
108
lib/base/CStopwatch.h
Normal file
|
@ -0,0 +1,108 @@
|
|||
/*
|
||||
* synergy -- mouse and keyboard sharing utility
|
||||
* Copyright (C) 2002 Chris Schoeneman
|
||||
*
|
||||
* This package is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* found in the file COPYING that should have accompanied this file.
|
||||
*
|
||||
* This package is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef CSTOPWATCH_H
|
||||
#define CSTOPWATCH_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
//! A timer class
|
||||
/*!
|
||||
This class measures time intervals. All time interval measurement
|
||||
should use this class.
|
||||
*/
|
||||
class CStopwatch {
|
||||
public:
|
||||
/*!
|
||||
The default constructor does an implicit reset() or setTrigger().
|
||||
If triggered == false then the clock starts ticking.
|
||||
*/
|
||||
CStopwatch(bool triggered = false);
|
||||
~CStopwatch();
|
||||
|
||||
//! @name manipulators
|
||||
//@{
|
||||
|
||||
//! Reset the timer to zero
|
||||
/*!
|
||||
Set the start time to the current time, returning the time since
|
||||
the last reset. This does not remove the trigger if it's set nor
|
||||
does it start a stopped clock. If the clock is stopped then
|
||||
subsequent reset()'s will return 0.
|
||||
*/
|
||||
double reset();
|
||||
|
||||
//! Stop the timer
|
||||
/*!
|
||||
Stop the stopwatch. The time interval while stopped is not
|
||||
counted by the stopwatch. stop() does not remove the trigger.
|
||||
Has no effect if already stopped.
|
||||
*/
|
||||
void stop();
|
||||
|
||||
//! Start the timer
|
||||
/*!
|
||||
Start the stopwatch. start() removes the trigger, even if the
|
||||
stopwatch was already started.
|
||||
*/
|
||||
void start();
|
||||
|
||||
//! Stop the timer and set the trigger
|
||||
/*!
|
||||
setTrigger() stops the clock like stop() except there's an
|
||||
implicit start() the next time (non-const) getTime() is called.
|
||||
This is useful when you want the clock to start the first time
|
||||
you check it.
|
||||
*/
|
||||
void setTrigger();
|
||||
|
||||
//! Get elapsed time
|
||||
/*!
|
||||
Returns the time since the last reset() (or calls reset() and
|
||||
returns zero if the trigger is set).
|
||||
*/
|
||||
double getTime();
|
||||
//! Same as getTime()
|
||||
operator double();
|
||||
//@}
|
||||
//! @name accessors
|
||||
//@{
|
||||
|
||||
//! Check if timer is stopped
|
||||
/*!
|
||||
Returns true if the stopwatch is stopped.
|
||||
*/
|
||||
bool isStopped() const;
|
||||
|
||||
// return the time since the last reset().
|
||||
//! Get elapsed time
|
||||
/*!
|
||||
Returns the time since the last reset(). This cannot trigger the
|
||||
stopwatch to start and will not clear the trigger.
|
||||
*/
|
||||
double getTime() const;
|
||||
//! Same as getTime() const
|
||||
operator double() const;
|
||||
//@}
|
||||
|
||||
private:
|
||||
double getClock() const;
|
||||
|
||||
private:
|
||||
double m_mark;
|
||||
bool m_triggered;
|
||||
bool m_stopped;
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue