summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/client_session.h
diff options
context:
space:
mode:
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