// Copyright 2017 the V8 project 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 V8_BASE_TIMEZONE_CACHE_H_
#define V8_BASE_TIMEZONE_CACHE_H_

namespace v8 {
namespace base {

class TimezoneCache {
 public:
  // Short name of the local timezone (e.g., EST)
  virtual const char* LocalTimezone(double time_ms) = 0;

  // ES #sec-daylight-saving-time-adjustment
  // Daylight Saving Time Adjustment
  virtual double DaylightSavingsOffset(double time_ms) = 0;

  // ES #sec-local-time-zone-adjustment
  // Local Time Zone Adjustment
  //
  // https://github.com/tc39/ecma262/pull/778
  virtual double LocalTimeOffset(double time_ms, bool is_utc) = 0;

  // Called when the local timezone changes
  virtual void Clear() = 0;

  // Called when tearing down the isolate
  virtual ~TimezoneCache() {}
};

}  // namespace base
}  // namespace v8

#endif  // V8_BASE_TIMEZONE_CACHE_H_
