summaryrefslogtreecommitdiffstats
path: root/src/lib/util/stopwatch.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/util/stopwatch.cc')
-rw-r--r--src/lib/util/stopwatch.cc85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/lib/util/stopwatch.cc b/src/lib/util/stopwatch.cc
new file mode 100644
index 0000000..f75c6cd
--- /dev/null
+++ b/src/lib/util/stopwatch.cc
@@ -0,0 +1,85 @@
+// Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#include <config.h>
+
+#include <util/stopwatch.h>
+#include <util/stopwatch_impl.h>
+
+namespace isc {
+namespace util {
+
+using namespace boost::posix_time;
+
+Stopwatch::Stopwatch(const bool autostart)
+ : impl_(new StopwatchImpl()) {
+ // If the autostart has been specified, invoke start.
+ if (autostart) {
+ start();
+ }
+}
+
+Stopwatch::~Stopwatch() {
+ delete impl_;
+}
+
+void
+Stopwatch::start() {
+ impl_->start();
+}
+
+void
+Stopwatch::stop() {
+ impl_->stop();
+}
+
+void
+Stopwatch::reset() {
+ impl_->reset();
+}
+
+boost::posix_time::time_duration
+Stopwatch::getLastDuration() const {
+ return (impl_->getLastDuration());
+}
+
+boost::posix_time::time_duration
+Stopwatch::getTotalDuration() const {
+ return (impl_->getTotalDuration());
+}
+
+long
+Stopwatch::getLastMilliseconds() const {
+ return (getLastDuration().total_milliseconds());
+}
+
+long
+Stopwatch::getTotalMilliseconds() const {
+ return (getTotalDuration().total_milliseconds());
+}
+
+long
+Stopwatch::getLastMicroseconds() const {
+ return (getLastDuration().total_microseconds());
+}
+
+long
+Stopwatch::getTotalMicroseconds() const {
+ return (getTotalDuration().total_microseconds());
+}
+
+std::string
+Stopwatch::logFormatLastDuration() const {
+ return (StopwatchImpl::logFormat(getLastDuration()));
+}
+
+std::string
+Stopwatch::logFormatTotalDuration() const {
+ return (StopwatchImpl::logFormat(getTotalDuration()));
+}
+
+} // end of isc::util
+} // end of isc