summaryrefslogtreecommitdiffstats
path: root/cc/base/time_util.h
blob: 06682c27e2fc1efd08142e65d6b4545eea937961 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Copyright 2014 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 CC_BASE_TIME_UTIL_H_
#define CC_BASE_TIME_UTIL_H_

namespace base {
class TimeDelta;
}

namespace cc {

class CC_EXPORT TimeUtil {
 public:
  static base::TimeDelta Scale(base::TimeDelta time_delta, double value) {
    return base::TimeDelta::FromInternalValue(static_cast<int64>(
        static_cast<double>(time_delta.ToInternalValue()) * value));
  }

  static double Divide(base::TimeDelta dividend, base::TimeDelta divisor) {
    return static_cast<double>(dividend.ToInternalValue()) /
           static_cast<double>(divisor.ToInternalValue());
  }

  static base::TimeDelta Mod(base::TimeDelta dividend,
                             base::TimeDelta divisor) {
    return base::TimeDelta::FromInternalValue(dividend.ToInternalValue() %
                                              divisor.ToInternalValue());
  }
};

}  // namespace cc

#endif  // CC_BASE_TIME_UTIL_H_