// Copyright 2020 yuzu emulator team // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include namespace Common { class Event; } namespace Core { class CPUInterruptHandler { public: CPUInterruptHandler(); ~CPUInterruptHandler(); CPUInterruptHandler(const CPUInterruptHandler&) = delete; CPUInterruptHandler& operator=(const CPUInterruptHandler&) = delete; CPUInterruptHandler(CPUInterruptHandler&&) = default; CPUInterruptHandler& operator=(CPUInterruptHandler&&) = default; constexpr bool IsInterrupted() const { return is_interrupted; } void SetInterrupt(bool is_interrupted); void AwaitInterrupt(); private: bool is_interrupted{}; std::unique_ptr interrupt_event; }; } // namespace Core