diff options
Diffstat (limited to 'src/tz_info.hh')
| -rw-r--r-- | src/tz_info.hh | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/tz_info.hh b/src/tz_info.hh new file mode 100644 index 0000000..eb44e58 --- /dev/null +++ b/src/tz_info.hh @@ -0,0 +1,28 @@ +#ifndef TZ_INFO_HH +#define TZ_INFO_HH + +#include <filesystem> +#include <memory> +#include <optional> +#include <string_view> + +class Logger; + +class TzInfo { +public: + virtual ~TzInfo() = default; + + static std::unique_ptr<TzInfo> create(std::shared_ptr<Logger> logger, + std::filesystem::path tzinfo_dir); + + virtual std::optional<time_t> 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 |
