// Copyright 2017 Citra Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include #include #include "core/hle/kernel/sync_object.h" #include "core/hle/result.h" namespace Kernel { class Session; class SessionRequestHandler; class Domain final : public SyncObject { public: std::string GetTypeName() const override { return "Domain"; } static const HandleType HANDLE_TYPE = HandleType::Domain; HandleType GetHandleType() const override { return HANDLE_TYPE; } static ResultVal> CreateFromSession(const Session& server); ResultCode SendSyncRequest(SharedPtr thread) override; /// The name of this domain (optional) std::string name; std::vector> request_handlers; private: Domain() = default; ~Domain() override = default; static ResultVal> Create(std::string name = "Unknown"); }; } // namespace Kernel