summaryrefslogtreecommitdiff
path: root/src/core/hle/kernel/session.h
diff options
context:
space:
mode:
authorGravatar Subv2017-01-04 23:23:17 -0500
committerGravatar Subv2017-05-15 11:22:15 -0500
commitddfabf31330c0c8e0558a714b6d7e1f1948b73ed (patch)
tree62c525537f603fe85f494f9fb6e622ffcd2afda9 /src/core/hle/kernel/session.h
parentMerge pull request #2659 from MerryMage/dsp_dsp-correction (diff)
downloadyuzu-ddfabf31330c0c8e0558a714b6d7e1f1948b73ed.tar.gz
yuzu-ddfabf31330c0c8e0558a714b6d7e1f1948b73ed.tar.xz
yuzu-ddfabf31330c0c8e0558a714b6d7e1f1948b73ed.zip
Kernel: Use a Session object to keep track of the status of a Client/Server session pair.
Reduce the associated port's connection count when a ServerSession is destroyed.
Diffstat (limited to 'src/core/hle/kernel/session.h')
-rw-r--r--src/core/hle/kernel/session.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/core/hle/kernel/session.h b/src/core/hle/kernel/session.h
new file mode 100644
index 000000000..a45e78022
--- /dev/null
+++ b/src/core/hle/kernel/session.h
@@ -0,0 +1,27 @@
1// Copyright 2017 Citra Emulator Project
2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included.
4
5#pragma once
6
7#include "core/hle/kernel/kernel.h"
8
9namespace Kernel {
10
11class ClientSession;
12class ClientPort;
13class ServerSession;
14
15/**
16 * Parent structure to link the client and server endpoints of a session with their associated
17 * client port. The client port need not exist, as is the case for portless sessions like the
18 * FS File and Directory sessions. When one of the endpoints of a session is destroyed, its
19 * corresponding field in this structure will be set to nullptr.
20 */
21class Session final {
22public:
23 ClientSession* client = nullptr; ///< The client endpoint of the session.
24 ServerSession* server = nullptr; ///< The server endpoint of the session.
25 SharedPtr<ClientPort> port; ///< The port that this session is associated with (optional).
26};
27}