k_client_session.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #pragma once
  4. #include <string>
  5. #include "core/hle/kernel/k_auto_object.h"
  6. #include "core/hle/kernel/slab_helpers.h"
  7. #include "core/hle/result.h"
  8. union Result;
  9. namespace Core::Memory {
  10. class Memory;
  11. }
  12. namespace Core::Timing {
  13. class CoreTiming;
  14. }
  15. namespace Kernel {
  16. class KernelCore;
  17. class KSession;
  18. class KThread;
  19. class KClientSession final
  20. : public KAutoObjectWithSlabHeapAndContainer<KClientSession, KAutoObjectWithList> {
  21. KERNEL_AUTOOBJECT_TRAITS(KClientSession, KAutoObject);
  22. public:
  23. explicit KClientSession(KernelCore& kernel);
  24. ~KClientSession() override;
  25. void Initialize(KSession* parent) {
  26. // Set member variables.
  27. m_parent = parent;
  28. }
  29. void Destroy() override;
  30. static void PostDestroy(uintptr_t arg) {}
  31. KSession* GetParent() const {
  32. return m_parent;
  33. }
  34. Result SendSyncRequest();
  35. void OnServerClosed();
  36. private:
  37. KSession* m_parent{};
  38. };
  39. } // namespace Kernel