Merge "Utility function to conveniently measure time"
diff --git a/speedtest/utils.cc b/speedtest/utils.cc
new file mode 100644
index 0000000..841ed99
--- /dev/null
+++ b/speedtest/utils.cc
@@ -0,0 +1,17 @@
+#include "utils.h"
+
+#include <cstdlib>
+#include <iostream>
+
+namespace speedtest {
+
+long SystemTimeMicros() {
+ struct timespec ts;
+ if (clock_gettime(CLOCK_MONOTONIC, &ts)) {
+ std::cerr << "Error reading system time\n";
+ std::exit(1);
+ }
+ return ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
+}
+
+} // namespace speedtest
diff --git a/speedtest/utils.h b/speedtest/utils.h
new file mode 100644
index 0000000..95909b1
--- /dev/null
+++ b/speedtest/utils.h
@@ -0,0 +1,12 @@
+#ifndef SPEEDTEST_UTILS_H
+#define SPEEDTEST_UTILS_H
+
+namespace speedtest {
+
+// Return relative time in microseconds
+// This isn't convertible to an absolute date and time
+long SystemTimeMicros();
+
+} // namespace speedtst
+
+#endif // SPEEDTEST_UTILS_H