summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/client_session.h
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2016-06-15 01:03:30 +0200
committerSubv <subv2112@gmail.com>2016-12-01 05:02:05 +0100
commit073653e858abf377fd1ebbdb071809c8830ce99d (patch)
treea29e1c1e50d53162ed89cd90e8c069525150392f /src/core/hle/kernel/client_session.h
parentMerge pull request #2228 from freiro/winver_fix (diff)
downloadyuzu-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.h')
-rw-r--r--src/core/hle/kernel/client_session.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/core/hle/kernel/client_session.h b/src/core/hle/kernel/client_session.h
new file mode 100644
index 000000000..4fe9b4517
--- /dev/null
+++ b/src/core/hle/kernel/client_session.h
@@ -0,0 +1,50 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <string>
+
+#include "common/common_types.h"
+
+#include "core/hle/kernel/kernel.h"
+
+namespace Kernel {
+
+class ClientPort;
+class ServerSession;
+
+class ClientSession final : public Object {
+public:
+ /**
+ * Creates a client session.
+ * @param server_session The server session associated with this client session
+ * @param client_port The client port which this session is connected to
+ * @param name Optional name of client session
+ * @return The created client session
+ */
+ static ResultVal<SharedPtr<ClientSession>> Create(SharedPtr<ServerSession> server_session, SharedPtr<ClientPort> client_port, std::string name = "Unknown");
+
+ std::string GetTypeName() const override { return "ClientSession"; }
+ std::string GetName() const override { return name; }
+
+ static const HandleType HANDLE_TYPE = HandleType::ClientSession;
+ HandleType GetHandleType() const override { return HANDLE_TYPE; }
+
+ /**
+ * Handle a SyncRequest from the emulated application.
+ * @return ResultCode of the operation.
+ */
+ ResultCode HandleSyncRequest();
+
+ std::string name; ///< Name of client port (optional)
+ SharedPtr<ServerSession> server_session; ///< The server session associated with this client session.
+ SharedPtr<ClientPort> client_port; ///< The client port which this session is connected to.
+
+private:
+ ClientSession();
+ ~ClientSession() override;
+};
+
+} // namespace