domain.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright 2018 yuzu emulator team
  2. // Licensed under GPLv2 or any later version
  3. // Refer to the license.txt file included.
  4. #pragma once
  5. #include <memory>
  6. #include <string>
  7. #include <vector>
  8. #include "core/hle/kernel/sync_object.h"
  9. #include "core/hle/result.h"
  10. namespace Kernel {
  11. class Session;
  12. class SessionRequestHandler;
  13. class Domain final : public SyncObject {
  14. public:
  15. std::string GetTypeName() const override {
  16. return "Domain";
  17. }
  18. static const HandleType HANDLE_TYPE = HandleType::Domain;
  19. HandleType GetHandleType() const override {
  20. return HANDLE_TYPE;
  21. }
  22. static ResultVal<SharedPtr<Domain>> CreateFromSession(const Session& server);
  23. ResultCode SendSyncRequest(SharedPtr<Thread> thread) override;
  24. /// The name of this domain (optional)
  25. std::string name;
  26. std::vector<std::shared_ptr<SessionRequestHandler>> request_handlers;
  27. private:
  28. Domain() = default;
  29. ~Domain() override = default;
  30. static ResultVal<SharedPtr<Domain>> Create(std::string name = "Unknown");
  31. };
  32. } // namespace Kernel