summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/server_session.cpp
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2016-12-14 18:33:49 +0100
committerSubv <subv2112@gmail.com>2016-12-14 18:45:36 +0100
commit016307ae656afc85ab59a5c2598205ef81f99231 (patch)
treeae2031654a2178e8ea824928be03fd8409f81222 /src/core/hle/kernel/server_session.cpp
parentMoved the HLE command buffer translation task to ServerSession instead of the HLE handler superclass. (diff)
downloadyuzu-016307ae656afc85ab59a5c2598205ef81f99231.tar
yuzu-016307ae656afc85ab59a5c2598205ef81f99231.tar.gz
yuzu-016307ae656afc85ab59a5c2598205ef81f99231.tar.bz2
yuzu-016307ae656afc85ab59a5c2598205ef81f99231.tar.lz
yuzu-016307ae656afc85ab59a5c2598205ef81f99231.tar.xz
yuzu-016307ae656afc85ab59a5c2598205ef81f99231.tar.zst
yuzu-016307ae656afc85ab59a5c2598205ef81f99231.zip
Diffstat (limited to 'src/core/hle/kernel/server_session.cpp')
-rw-r--r--src/core/hle/kernel/server_session.cpp25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp
index 1e54c3a2e..146458c1c 100644
--- a/src/core/hle/kernel/server_session.cpp
+++ b/src/core/hle/kernel/server_session.cpp
@@ -12,12 +12,14 @@ namespace Kernel {
ServerSession::ServerSession() = default;
ServerSession::~ServerSession() {
- // This destructor will be called automatically when the last ServerSession handle is closed by the emulated application.
+ // This destructor will be called automatically when the last ServerSession handle is closed by
+ // the emulated application.
// TODO(Subv): Reduce the ClientPort's connection count,
// if the session is still open, set the connection status to 3 (Closed by server),
}
-ResultVal<SharedPtr<ServerSession>> ServerSession::Create(std::string name, std::shared_ptr<Service::SessionRequestHandler> hle_handler) {
+ResultVal<SharedPtr<ServerSession>> ServerSession::Create(
+ std::string name, std::shared_ptr<Service::SessionRequestHandler> hle_handler) {
SharedPtr<ServerSession> server_session(new ServerSession);
server_session->name = std::move(name);
@@ -38,7 +40,8 @@ void ServerSession::Acquire() {
ResultCode ServerSession::HandleSyncRequest() {
// The ServerSession received a sync request, this means that there's new data available
- // from its ClientSession, so wake up any threads that may be waiting on a svcReplyAndReceive or similar.
+ // from its ClientSession, so wake up any threads that may be waiting on a svcReplyAndReceive or
+ // similar.
// If this ServerSession has an associated HLE handler, forward the request to it.
if (hle_handler != nullptr) {
@@ -50,17 +53,20 @@ ResultCode ServerSession::HandleSyncRequest() {
// TODO(Subv): Translate the response command buffer.
}
- // If this ServerSession does not have an HLE implementation, just wake up the threads waiting on it.
+ // If this ServerSession does not have an HLE implementation, just wake up the threads waiting
+ // on it.
signaled = true;
WakeupAllWaitingThreads();
return RESULT_SUCCESS;
}
-ServerSession::SessionPair ServerSession::CreateSessionPair(const std::string& name,
- std::shared_ptr<Service::SessionRequestHandler> hle_handler) {
- auto server_session = ServerSession::Create(name + "_Server", std::move(hle_handler)).MoveFrom();
- // We keep a non-owning pointer to the ServerSession in the ClientSession because we don't want to prevent the
- // ServerSession's destructor from being called when the emulated application closes the last ServerSession handle.
+ServerSession::SessionPair ServerSession::CreateSessionPair(
+ const std::string& name, std::shared_ptr<Service::SessionRequestHandler> hle_handler) {
+ auto server_session =
+ ServerSession::Create(name + "_Server", std::move(hle_handler)).MoveFrom();
+ // We keep a non-owning pointer to the ServerSession in the ClientSession because we don't want
+ // to prevent the ServerSession's destructor from being called when the emulated
+ // application closes the last ServerSession handle.
auto client_session = ClientSession::Create(server_session.get(), name + "_Client").MoveFrom();
return std::make_tuple(std::move(server_session), std::move(client_session));
@@ -70,5 +76,4 @@ ResultCode TranslateHLERequest(ServerSession* server_session) {
// TODO(Subv): Implement this function once multiple concurrent processes are supported.
return RESULT_SUCCESS;
}
-
}