mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-11-24 14:26:09 +03:00
46 lines
1.1 KiB
C
46 lines
1.1 KiB
C
|
// Copyright 2018 The Chromium Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a BSD-style license that can be
|
||
|
// found in the LICENSE file.
|
||
|
|
||
|
#ifndef UTIL_TICKS_H_
|
||
|
#define UTIL_TICKS_H_
|
||
|
|
||
|
#include <stdint.h>
|
||
|
|
||
|
using Ticks = uint64_t;
|
||
|
|
||
|
class TickDelta {
|
||
|
public:
|
||
|
explicit TickDelta(uint64_t delta) : delta_(delta) {}
|
||
|
|
||
|
double InSecondsF() const { return delta_ / 1000000000.0; }
|
||
|
double InMillisecondsF() const { return delta_ / 1000000.0; }
|
||
|
double InMicrosecondsF() const { return delta_ / 1000.0; }
|
||
|
double InNanosecondsF() const { return delta_; }
|
||
|
|
||
|
uint64_t InSeconds() const { return delta_ / 1000000000; }
|
||
|
uint64_t InMilliseconds() const { return delta_ / 1000000; }
|
||
|
uint64_t InMicroseconds() const { return delta_ / 1000; }
|
||
|
uint64_t InNanoseconds() const { return delta_; }
|
||
|
|
||
|
uint64_t raw() const { return delta_; }
|
||
|
|
||
|
private:
|
||
|
uint64_t delta_;
|
||
|
};
|
||
|
|
||
|
Ticks TicksNow();
|
||
|
|
||
|
TickDelta TicksDelta(Ticks new_ticks, Ticks old_ticks);
|
||
|
|
||
|
class ElapsedTimer {
|
||
|
public:
|
||
|
ElapsedTimer() : start_(TicksNow()) {}
|
||
|
TickDelta Elapsed() { return TicksDelta(TicksNow(), start_); }
|
||
|
|
||
|
private:
|
||
|
Ticks start_;
|
||
|
};
|
||
|
|
||
|
#endif // UTIL_TICKS_H_
|