1 // Copyright 2019 yuzu emulator team
2 // Licensed under GPLv2 or any later version
3 // Refer to the license.txt file included.
4 
5 #pragma once
6 
7 #include "core/hle/service/service.h"
8 
9 namespace Core {
10 class System;
11 }
12 
13 namespace Service::Time {
14 
15 namespace TimeZone {
16 class TimeZoneContentManager;
17 }
18 
19 class ITimeZoneService final : public ServiceFramework<ITimeZoneService> {
20 public:
21     explicit ITimeZoneService(Core::System& system_,
22                               TimeZone::TimeZoneContentManager& time_zone_manager_);
23 
24 private:
25     void GetDeviceLocationName(Kernel::HLERequestContext& ctx);
26     void LoadTimeZoneRule(Kernel::HLERequestContext& ctx);
27     void ToCalendarTime(Kernel::HLERequestContext& ctx);
28     void ToCalendarTimeWithMyRule(Kernel::HLERequestContext& ctx);
29     void ToPosixTime(Kernel::HLERequestContext& ctx);
30     void ToPosixTimeWithMyRule(Kernel::HLERequestContext& ctx);
31 
32 private:
33     TimeZone::TimeZoneContentManager& time_zone_content_manager;
34 };
35 
36 } // namespace Service::Time
37