Stopwatch.cpp 751 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // Stopwatch.cpp
  3. //
  4. // $Id: //poco/1.4/Foundation/src/Stopwatch.cpp#2 $
  5. //
  6. // Library: Foundation
  7. // Package: DateTime
  8. // Module: Stopwatch
  9. //
  10. // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
  11. // and Contributors.
  12. //
  13. // SPDX-License-Identifier: BSL-1.0
  14. //
  15. #include "Poco/Stopwatch.h"
  16. namespace Poco {
  17. Stopwatch::Stopwatch(): _elapsed(0), _running(false)
  18. {
  19. }
  20. Stopwatch::~Stopwatch()
  21. {
  22. }
  23. Clock::ClockDiff Stopwatch::elapsed() const
  24. {
  25. if (_running)
  26. {
  27. Clock current;
  28. return _elapsed + (current - _start);
  29. }
  30. else
  31. {
  32. return _elapsed;
  33. }
  34. }
  35. void Stopwatch::reset()
  36. {
  37. _elapsed = 0;
  38. _running = false;
  39. }
  40. void Stopwatch::restart()
  41. {
  42. _elapsed = 0;
  43. _start.update();
  44. _running = true;
  45. }
  46. } // namespace Poco