summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/server_manager.h
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2023-12-09 17:22:42 +0100
committerLiam <byteslice@airmail.cc>2023-12-09 19:45:25 +0100
commit34e40129989e446db7233c9b757d4ebd48af7e75 (patch)
tree42fa67cdc03cc901eec752fddb6c462ff762a630 /src/core/hle/service/server_manager.h
parentMerge pull request #12289 from german77/aruid (diff)
downloadyuzu-34e40129989e446db7233c9b757d4ebd48af7e75.tar
yuzu-34e40129989e446db7233c9b757d4ebd48af7e75.tar.gz
yuzu-34e40129989e446db7233c9b757d4ebd48af7e75.tar.bz2
yuzu-34e40129989e446db7233c9b757d4ebd48af7e75.tar.lz
yuzu-34e40129989e446db7233c9b757d4ebd48af7e75.tar.xz
yuzu-34e40129989e446db7233c9b757d4ebd48af7e75.tar.zst
yuzu-34e40129989e446db7233c9b757d4ebd48af7e75.zip
Diffstat (limited to 'src/core/hle/service/server_manager.h')
-rw-r--r--src/core/hle/service/server_manager.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/core/hle/service/server_manager.h b/src/core/hle/service/server_manager.h
index 58b0a0832..c4bc07262 100644
--- a/src/core/hle/service/server_manager.h
+++ b/src/core/hle/service/server_manager.h
@@ -13,6 +13,7 @@
#include "common/polyfill_thread.h"
#include "common/thread.h"
#include "core/hle/result.h"
+#include "core/hle/service/hle_ipc.h"
#include "core/hle/service/mutex.h"
namespace Core {
@@ -28,10 +29,6 @@ class KSynchronizationObject;
namespace Service {
-class HLERequestContext;
-class SessionRequestHandler;
-class SessionRequestManager;
-
class ServerManager {
public:
explicit ServerManager(Core::System& system);
@@ -40,10 +37,13 @@ public:
Result RegisterSession(Kernel::KServerSession* session,
std::shared_ptr<SessionRequestManager> manager);
Result RegisterNamedService(const std::string& service_name,
+ SessionRequestHandlerFactory&& handler_factory,
+ u32 max_sessions = 64);
+ Result RegisterNamedService(const std::string& service_name,
std::shared_ptr<SessionRequestHandler>&& handler,
u32 max_sessions = 64);
Result ManageNamedPort(const std::string& service_name,
- std::shared_ptr<SessionRequestHandler>&& handler, u32 max_sessions = 64);
+ SessionRequestHandlerFactory&& handler_factory, u32 max_sessions = 64);
Result ManageDeferral(Kernel::KEvent** out_event);
Result LoopProcess();
@@ -56,7 +56,7 @@ private:
Result LoopProcessImpl();
Result WaitAndProcessImpl();
- Result OnPortEvent(Kernel::KServerPort* port, std::shared_ptr<SessionRequestHandler>&& handler);
+ Result OnPortEvent(Kernel::KServerPort* port, SessionRequestHandlerFactory&& handler_factory);
Result OnSessionEvent(Kernel::KServerSession* session,
std::shared_ptr<SessionRequestManager>&& manager);
Result OnDeferralEvent(std::list<RequestState>&& deferrals);
@@ -68,7 +68,7 @@ private:
std::mutex m_list_mutex;
// Guest state tracking
- std::map<Kernel::KServerPort*, std::shared_ptr<SessionRequestHandler>> m_ports{};
+ std::map<Kernel::KServerPort*, SessionRequestHandlerFactory> m_ports{};
std::map<Kernel::KServerSession*, std::shared_ptr<SessionRequestManager>> m_sessions{};
Kernel::KEvent* m_event{};
Kernel::KEvent* m_deferral_event{};