|
|
|
@ -19,6 +19,8 @@ class ServerSession; |
|
|
|
*/ |
|
|
|
class SessionRequestHandler : public std::enable_shared_from_this<SessionRequestHandler> { |
|
|
|
public: |
|
|
|
virtual ~SessionRequestHandler() = default; |
|
|
|
|
|
|
|
/** |
|
|
|
* Handles a sync request from the emulated application. |
|
|
|
* @param server_session The ServerSession that was triggered for this sync request, |
|
|
|
@ -27,27 +29,27 @@ public: |
|
|
|
* this request (ServerSession, Originator thread, Translated command buffer, etc). |
|
|
|
* @returns ResultCode the result code of the translate operation. |
|
|
|
*/ |
|
|
|
virtual void HandleSyncRequest(Kernel::SharedPtr<Kernel::ServerSession> server_session) = 0; |
|
|
|
virtual void HandleSyncRequest(SharedPtr<ServerSession> 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<Kernel::ServerSession> server_session); |
|
|
|
void ClientConnected(SharedPtr<ServerSession> 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<Kernel::ServerSession> server_session); |
|
|
|
void ClientDisconnected(SharedPtr<ServerSession> 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<Kernel::SharedPtr<Kernel::ServerSession>> connected_sessions; |
|
|
|
std::vector<SharedPtr<ServerSession>> connected_sessions; |
|
|
|
}; |
|
|
|
|
|
|
|
} // namespace Kernel |