From e626a520ca8d3047449d7d7028d6b9c773a6b570 Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Sun, 4 Jun 2017 21:52:19 -0700 Subject: HLE: Move SessionRequestHandler from Service:: to Kernel:: Most of the code that works with this is or will be in the kernel, so it's a more appropriate place for it to be. --- src/core/hle/service/service.h | 45 ++---------------------------------------- 1 file changed, 2 insertions(+), 43 deletions(-) (limited to 'src/core/hle/service/service.h') diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index ffabc24a4..a5fe843f6 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h @@ -12,13 +12,10 @@ #include "core/hle/ipc.h" #include "core/hle/ipc_helpers.h" #include "core/hle/kernel/client_port.h" +#include "core/hle/kernel/hle_ipc.h" #include "core/hle/result.h" #include "core/memory.h" -namespace Kernel { -class ServerSession; -} - //////////////////////////////////////////////////////////////////////////////////////////////////// // Namespace Service @@ -28,49 +25,11 @@ static const int kMaxPortSize = 8; ///< Maximum size of a port name (8 character /// Arbitrary default number of maximum connections to an HLE service. static const u32 DefaultMaxSessions = 10; -/** - * Interface implemented by HLE Session handlers. - * This can be provided to a ServerSession in order to hook into several relevant events - * (such as a new connection or a SyncRequest) so they can be implemented in the emulator. - */ -class SessionRequestHandler { -public: - /** - * Handles a sync request from the emulated application. - * @param server_session The ServerSession that was triggered for this sync request, - * it should be used to differentiate which client (As in ClientSession) we're answering to. - * TODO(Subv): Use a wrapper structure to hold all the information relevant to - * this request (ServerSession, Originator thread, Translated command buffer, etc). - * @returns ResultCode the result code of the translate operation. - */ - virtual void HandleSyncRequest(Kernel::SharedPtr server_session) = 0; - - /** - * Signals that a client has just connected to this HLE handler and keeps the - * associated ServerSession alive for the duration of the connection. - * @param server_session Owning pointer to the ServerSession associated with the connection. - */ - void ClientConnected(Kernel::SharedPtr server_session); - - /** - * Signals that a client has just disconnected from this HLE handler and releases the - * associated ServerSession. - * @param server_session ServerSession associated with the connection. - */ - void ClientDisconnected(Kernel::SharedPtr server_session); - -protected: - /// List of sessions that are connected to this handler. - /// A ServerSession whose server endpoint is an HLE implementation is kept alive by this list - // for the duration of the connection. - std::vector> connected_sessions; -}; - /** * Framework for implementing HLE service handlers which dispatch incoming SyncRequests based on a * table mapping header ids to handler functions. */ -class Interface : public SessionRequestHandler { +class Interface : public Kernel::SessionRequestHandler { public: /** * Creates an HLE interface with the specified max sessions. -- cgit v1.2.3