aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/Stopwatch.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2017-02-16 16:32:14 -0800
committerAlexander Karatarakis <alkarata@microsoft.com>2017-02-16 16:32:36 -0800
commite16084cc8d15b0c042871b0d1cffa6320a1681d4 (patch)
treea06678cd3da99fca13374bebe6e73c36bce1245f /toolsrc/src/Stopwatch.cpp
parenta62558fb793a0c8e31c189f8f5eebe3fc5c83f58 (diff)
downloadvcpkg-e16084cc8d15b0c042871b0d1cffa6320a1681d4.tar.gz
vcpkg-e16084cc8d15b0c042871b0d1cffa6320a1681d4.zip
Rename Stopwatch.h/cpp to vcpkg_Chrono.h/cpp
Diffstat (limited to 'toolsrc/src/Stopwatch.cpp')
-rw-r--r--toolsrc/src/Stopwatch.cpp119
1 files changed, 0 insertions, 119 deletions
diff --git a/toolsrc/src/Stopwatch.cpp b/toolsrc/src/Stopwatch.cpp
deleted file mode 100644
index 4f227bb7c..000000000
--- a/toolsrc/src/Stopwatch.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-#include "pch.h"
-#include "Stopwatch.h"
-#include "vcpkg_Checks.h"
-
-namespace vcpkg
-{
- static std::string format_time_userfriendly(const std::chrono::nanoseconds& nanos)
- {
- using std::chrono::hours;
- using std::chrono::minutes;
- using std::chrono::seconds;
- using std::chrono::milliseconds;
- using std::chrono::microseconds;
- using std::chrono::nanoseconds;
- using std::chrono::duration_cast;
-
- const double nanos_as_double = static_cast<double>(nanos.count());
-
- if (duration_cast<hours>(nanos) > hours())
- {
- auto t = nanos_as_double / duration_cast<nanoseconds>(hours(1)).count();
- return Strings::format("%.4g h", t);
- }
-
- if (duration_cast<minutes>(nanos) > minutes())
- {
- auto t = nanos_as_double / duration_cast<nanoseconds>(minutes(1)).count();
- return Strings::format("%.4g min", t);
- }
-
- if (duration_cast<seconds>(nanos) > seconds())
- {
- auto t = nanos_as_double / duration_cast<nanoseconds>(seconds(1)).count();
- return Strings::format("%.4g s", t);
- }
-
- if (duration_cast<milliseconds>(nanos) > milliseconds())
- {
- auto t = nanos_as_double / duration_cast<nanoseconds>(milliseconds(1)).count();
- return Strings::format("%.4g ms", t);
- }
-
- if (duration_cast<microseconds>(nanos) > microseconds())
- {
- auto t = nanos_as_double / duration_cast<nanoseconds>(microseconds(1)).count();
- return Strings::format("%.4g us", t);
- }
-
- return Strings::format("%.4g ns", nanos_as_double);
- }
-
- ElapsedTime ElapsedTime::createStarted()
- {
- ElapsedTime t;
- t.m_startTick = std::chrono::high_resolution_clock::now();
- return t;
- }
-
- std::string ElapsedTime::toString() const
- {
- return format_time_userfriendly(elapsed<std::chrono::nanoseconds>());
- }
-
- Stopwatch Stopwatch::createUnstarted()
- {
- return Stopwatch();
- }
-
- Stopwatch Stopwatch::createStarted()
- {
- return Stopwatch().start();
- }
-
- bool Stopwatch::isRunning() const
- {
- return this->m_isRunning;
- }
-
- const Stopwatch& Stopwatch::start()
- {
- Checks::check_exit(!this->m_isRunning, "This stopwatch is already running.");
- this->m_isRunning = true;
- this->m_startTick = std::chrono::high_resolution_clock::now();
- return *this;
- }
-
- const Stopwatch& Stopwatch::stop()
- {
- auto tick = std::chrono::high_resolution_clock::now();
- Checks::check_exit(this->m_isRunning, "This stopwatch is already stopped.");
- this->m_isRunning = false;
- this->m_elapsedNanos += tick - this->m_startTick;
- return *this;
- }
-
- Stopwatch& Stopwatch::reset()
- {
- this->m_elapsedNanos = std::chrono::nanoseconds();
- this->m_isRunning = false;
- return *this;
- }
-
- std::string Stopwatch::toString() const
- {
- return format_time_userfriendly(this->elapsedNanos());
- }
-
- Stopwatch::Stopwatch() : m_isRunning(false), m_elapsedNanos(0), m_startTick() { }
-
- std::chrono::nanoseconds Stopwatch::elapsedNanos() const
- {
- if (this->m_isRunning)
- {
- return std::chrono::high_resolution_clock::now() - this->m_startTick + this->m_elapsedNanos;
- }
-
- return this->m_elapsedNanos;
- }
-}