15 #ifndef ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_IF_H_ 16 #define ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_IF_H_ 27 namespace time_internal {
35 static std::unique_ptr<TimeZoneIf>
Load(
const std::string&
name);
49 virtual std::string
Version()
const = 0;
60 return (tp - std::chrono::time_point_cast<seconds>(
61 std::chrono::system_clock::from_time_t(0))).count();
64 return std::chrono::time_point_cast<
seconds>(
65 std::chrono::system_clock::from_time_t(0)) +
seconds(t);
72 #endif // ABSL_TIME_INTERNAL_CCTZ_TIME_ZONE_IF_H_ virtual bool PrevTransition(const time_point< seconds > &tp, time_zone::civil_transition *trans) const =0
virtual time_zone::civil_lookup MakeTime(const civil_second &cs) const =0
time_point< seconds > FromUnixSeconds(std::int_fast64_t t)
std::chrono::duration< std::int_fast64_t > seconds
virtual time_zone::absolute_lookup BreakTime(const time_point< seconds > &tp) const =0
virtual bool NextTransition(const time_point< seconds > &tp, time_zone::civil_transition *trans) const =0
virtual std::string Version() const =0
static std::unique_ptr< TimeZoneIf > Load(const std::string &name)
std::chrono::time_point< std::chrono::system_clock, D > time_point
virtual std::string Description() const =0
std::int_fast64_t ToUnixSeconds(const time_point< seconds > &tp)