// 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_t>(
        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_
