manager.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <functional>
  5. #include <string>
  6. #include "common/common_types.h"
  7. #include "core/file_sys/vfs/vfs_types.h"
  8. #include "core/hle/service/glue/time/file_timestamp_worker.h"
  9. #include "core/hle/service/glue/time/standard_steady_clock_resource.h"
  10. #include "core/hle/service/glue/time/worker.h"
  11. #include "core/hle/service/service.h"
  12. namespace Core {
  13. class System;
  14. }
  15. namespace Service::PSC::Time {
  16. class ServiceManager;
  17. class StaticService;
  18. } // namespace Service::PSC::Time
  19. namespace Service::Glue::Time {
  20. class TimeManager {
  21. public:
  22. explicit TimeManager(Core::System& system);
  23. ~TimeManager();
  24. std::shared_ptr<Service::Set::ISystemSettingsServer> m_set_sys;
  25. std::shared_ptr<Service::PSC::Time::ServiceManager> m_time_m{};
  26. std::shared_ptr<Service::PSC::Time::StaticService> m_time_sm{};
  27. StandardSteadyClockResource m_steady_clock_resource;
  28. FileTimestampWorker m_file_timestamp_worker;
  29. TimeWorker m_worker;
  30. private:
  31. Result SetupStandardSteadyClockCore();
  32. Result SetupTimeZoneServiceCore();
  33. };
  34. } // namespace Service::Glue::Time