From 4e2aa50cefd56f4bb119c9c6e6ab89afbb31351e Mon Sep 17 00:00:00 2001 From: Chloe Marcec Date: Mon, 6 Sep 2021 21:16:21 +1000 Subject: account: EnsureTokenIdCacheAsync Closes #2547, #6946 --- src/core/hle/service/acc/async_context.h | 36 ++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/core/hle/service/acc/async_context.h (limited to 'src/core/hle/service/acc/async_context.h') diff --git a/src/core/hle/service/acc/async_context.h b/src/core/hle/service/acc/async_context.h new file mode 100644 index 000000000..2453a79f5 --- /dev/null +++ b/src/core/hle/service/acc/async_context.h @@ -0,0 +1,36 @@ +// Copyright 2021 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "core/hle/kernel/k_event.h" +#include "core/hle/service/service.h" + +namespace Core { +class System; +} + +namespace Service::Account { + +class IAsyncContext : public ServiceFramework { +public: + explicit IAsyncContext(Core::System& system_); + + void GetSystemEvent(Kernel::HLERequestContext& ctx); + void Cancel(Kernel::HLERequestContext& ctx); + void HasDone(Kernel::HLERequestContext& ctx); + void GetResult(Kernel::HLERequestContext& ctx); + +protected: + virtual bool IsComplete() = 0; + virtual void Cancel() = 0; + virtual ResultCode GetResult() = 0; + + void MarkComplete(); + + bool is_complete{false}; + Kernel::KEvent compeletion_event; +}; + +} // namespace Service::Account -- cgit v1.2.3