diff options
| author | Subv <subv2112@gmail.com> | 2017-01-04 23:23:17 -0500 |
|---|---|---|
| committer | Subv <subv2112@gmail.com> | 2017-05-15 11:22:15 -0500 |
| commit | ddfabf31330c0c8e0558a714b6d7e1f1948b73ed (patch) | |
| tree | 62c525537f603fe85f494f9fb6e622ffcd2afda9 /src/core/hle/kernel/session.h | |
| parent | 6a72bd62b5f1e88df0d701478d95799a0b445ec4 (diff) | |
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.h | 27 |
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 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "core/hle/kernel/kernel.h" + +namespace Kernel { + +class ClientSession; +class ClientPort; +class ServerSession; + +/** + * Parent structure to link the client and server endpoints of a session with their associated + * client port. The client port need not exist, as is the case for portless sessions like the + * FS File and Directory sessions. When one of the endpoints of a session is destroyed, its + * corresponding field in this structure will be set to nullptr. + */ +class Session final { +public: + ClientSession* client = nullptr; ///< The client endpoint of the session. + ServerSession* server = nullptr; ///< The server endpoint of the session. + SharedPtr<ClientPort> port; ///< The port that this session is associated with (optional). +}; +} |
