diff options
author | Subv <subv2112@gmail.com> | 2016-06-15 01:03:30 +0200 |
---|---|---|
committer | Subv <subv2112@gmail.com> | 2016-12-01 05:02:05 +0100 |
commit | 073653e858abf377fd1ebbdb071809c8830ce99d (patch) | |
tree | a29e1c1e50d53162ed89cd90e8c069525150392f /src/core/hle/kernel/client_session.cpp | |
parent | Merge pull request #2228 from freiro/winver_fix (diff) | |
download | yuzu-073653e858abf377fd1ebbdb071809c8830ce99d.tar yuzu-073653e858abf377fd1ebbdb071809c8830ce99d.tar.gz yuzu-073653e858abf377fd1ebbdb071809c8830ce99d.tar.bz2 yuzu-073653e858abf377fd1ebbdb071809c8830ce99d.tar.lz yuzu-073653e858abf377fd1ebbdb071809c8830ce99d.tar.xz yuzu-073653e858abf377fd1ebbdb071809c8830ce99d.tar.zst yuzu-073653e858abf377fd1ebbdb071809c8830ce99d.zip |
Diffstat (limited to 'src/core/hle/kernel/client_session.cpp')
-rw-r--r-- | src/core/hle/kernel/client_session.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/core/hle/kernel/client_session.cpp b/src/core/hle/kernel/client_session.cpp new file mode 100644 index 000000000..f1ad9b65b --- /dev/null +++ b/src/core/hle/kernel/client_session.cpp @@ -0,0 +1,42 @@ +// Copyright 2016 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "common/assert.h" + +#include "core/hle/kernel/client_port.h" +#include "core/hle/kernel/client_session.h" +#include "core/hle/kernel/server_session.h" +#include "core/hle/kernel/kernel.h" + +namespace Kernel { + +ClientSession::ClientSession() {} +ClientSession::~ClientSession() {} + +ResultVal<SharedPtr<ClientSession>> ClientSession::Create(SharedPtr<ServerSession> server_session, SharedPtr<ClientPort> client_port, std::string name) { + SharedPtr<ClientSession> client_session(new ClientSession); + + client_session->name = std::move(name); + client_session->server_session = server_session; + client_session->client_port = client_port; + + return MakeResult<SharedPtr<ClientSession>>(std::move(client_session)); +} + +ResultCode ClientSession::HandleSyncRequest() { + // Signal the server session that new data is available + ResultCode result = server_session->HandleSyncRequest(); + + if (result.IsError()) + return result; + + // Tell the client port to handle the request in case it's an HLE service. + // The client port can be nullptr for port-less sessions (Like for example File and Directory sessions). + if (client_port != nullptr) + result = client_port->HandleSyncRequest(); + + return result; +} + +} // namespace |