diff options
| author | 2018-08-07 11:20:26 -0400 | |
|---|---|---|
| committer | 2018-08-07 11:20:26 -0400 | |
| commit | 8f73f41824f19ebc96a79dabbb7cbb8c94f68e16 (patch) | |
| tree | b3cba5d65ce5d65f203857369203e9c3b9fb7643 | |
| parent | Merge pull request #951 from lioncash/glad (diff) | |
| parent | client_port: Make all data members private (diff) | |
| download | yuzu-8f73f41824f19ebc96a79dabbb7cbb8c94f68e16.tar.gz yuzu-8f73f41824f19ebc96a79dabbb7cbb8c94f68e16.tar.xz yuzu-8f73f41824f19ebc96a79dabbb7cbb8c94f68e16.zip | |
Merge pull request #949 from lioncash/priv
client_port: Make all data members private
| -rw-r--r-- | src/core/hle/kernel/client_port.cpp | 12 | ||||
| -rw-r--r-- | src/core/hle/kernel/client_port.h | 14 | ||||
| -rw-r--r-- | src/core/hle/kernel/server_session.cpp | 2 |
3 files changed, 21 insertions, 7 deletions
diff --git a/src/core/hle/kernel/client_port.cpp b/src/core/hle/kernel/client_port.cpp index 7933c105c..134e41ebc 100644 --- a/src/core/hle/kernel/client_port.cpp +++ b/src/core/hle/kernel/client_port.cpp | |||
| @@ -14,8 +14,8 @@ | |||
| 14 | 14 | ||
| 15 | namespace Kernel { | 15 | namespace Kernel { |
| 16 | 16 | ||
| 17 | ClientPort::ClientPort() {} | 17 | ClientPort::ClientPort() = default; |
| 18 | ClientPort::~ClientPort() {} | 18 | ClientPort::~ClientPort() = default; |
| 19 | 19 | ||
| 20 | ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() { | 20 | ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() { |
| 21 | // Note: Threads do not wait for the server endpoint to call | 21 | // Note: Threads do not wait for the server endpoint to call |
| @@ -40,4 +40,12 @@ ResultVal<SharedPtr<ClientSession>> ClientPort::Connect() { | |||
| 40 | return MakeResult(std::get<SharedPtr<ClientSession>>(sessions)); | 40 | return MakeResult(std::get<SharedPtr<ClientSession>>(sessions)); |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | void ClientPort::ConnectionClosed() { | ||
| 44 | if (active_sessions == 0) { | ||
| 45 | return; | ||
| 46 | } | ||
| 47 | |||
| 48 | --active_sessions; | ||
| 49 | } | ||
| 50 | |||
| 43 | } // namespace Kernel | 51 | } // namespace Kernel |
diff --git a/src/core/hle/kernel/client_port.h b/src/core/hle/kernel/client_port.h index b42c94bde..b1269ea5c 100644 --- a/src/core/hle/kernel/client_port.h +++ b/src/core/hle/kernel/client_port.h | |||
| @@ -37,14 +37,20 @@ public: | |||
| 37 | */ | 37 | */ |
| 38 | ResultVal<SharedPtr<ClientSession>> Connect(); | 38 | ResultVal<SharedPtr<ClientSession>> Connect(); |
| 39 | 39 | ||
| 40 | SharedPtr<ServerPort> server_port; ///< ServerPort associated with this client port. | 40 | /** |
| 41 | u32 max_sessions; ///< Maximum number of simultaneous sessions the port can have | 41 | * Signifies that a previously active connection has been closed, |
| 42 | u32 active_sessions; ///< Number of currently open sessions to this port | 42 | * decreasing the total number of active connections to this port. |
| 43 | std::string name; ///< Name of client port (optional) | 43 | */ |
| 44 | void ConnectionClosed(); | ||
| 44 | 45 | ||
| 45 | private: | 46 | private: |
| 46 | ClientPort(); | 47 | ClientPort(); |
| 47 | ~ClientPort() override; | 48 | ~ClientPort() override; |
| 49 | |||
| 50 | SharedPtr<ServerPort> server_port; ///< ServerPort associated with this client port. | ||
| 51 | u32 max_sessions = 0; ///< Maximum number of simultaneous sessions the port can have | ||
| 52 | u32 active_sessions = 0; ///< Number of currently open sessions to this port | ||
| 53 | std::string name; ///< Name of client port (optional) | ||
| 48 | }; | 54 | }; |
| 49 | 55 | ||
| 50 | } // namespace Kernel | 56 | } // namespace Kernel |
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp index 60370e9ec..93560152f 100644 --- a/src/core/hle/kernel/server_session.cpp +++ b/src/core/hle/kernel/server_session.cpp | |||
| @@ -27,7 +27,7 @@ ServerSession::~ServerSession() { | |||
| 27 | 27 | ||
| 28 | // Decrease the port's connection count. | 28 | // Decrease the port's connection count. |
| 29 | if (parent->port) | 29 | if (parent->port) |
| 30 | parent->port->active_sessions--; | 30 | parent->port->ConnectionClosed(); |
| 31 | 31 | ||
| 32 | // TODO(Subv): Wake up all the ClientSession's waiting threads and set | 32 | // TODO(Subv): Wake up all the ClientSession's waiting threads and set |
| 33 | // the SendSyncRequest result to 0xC920181A. | 33 | // the SendSyncRequest result to 0xC920181A. |