time_manager.h 695 B

123456789101112131415161718192021222324252627282930313233343536
  1. // Copyright 2020 yuzu Emulator Project
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. #include "core/hle/kernel/object.h"
  7. namespace Core {
  8. class System;
  9. } // namespace Core
  10. namespace Core::Timing {
  11. struct EventType;
  12. } // namespace Core::Timing
  13. namespace Kernel {
  14. class Thread;
  15. class TimeManager {
  16. public:
  17. TimeManager(Core::System& system);
  18. void ScheduleTimeEvent(Handle& event_handle, Thread* timetask, s64 nanoseconds);
  19. void UnscheduleTimeEvent(Handle event_handle);
  20. private:
  21. Core::System& system;
  22. std::shared_ptr<Core::Timing::EventType> time_manager_event_type;
  23. };
  24. } // namespace Kernel