#ifndef TZ_INFO_HH #define TZ_INFO_HH #include #include #include #include class Logger; class TzInfo { public: virtual ~TzInfo() = default; static std::unique_ptr create(std::shared_ptr logger, std::filesystem::path tzinfo_dir); virtual std::optional get_local_time(std::string_view tzname, time_t utc_time) const = 0; protected: TzInfo() = default; TzInfo(TzInfo const&) = delete; TzInfo& operator=(TzInfo const&) = delete; }; #endif // TZ_INFO_HH