From 52b49986f377d3d63ce09ae46b4e81d8dfb11bb3 Mon Sep 17 00:00:00 2001 From: Jamie Reece Wilson Date: Thu, 30 Nov 2023 02:40:30 +0000 Subject: [PATCH] [+] ISocketServer::GetSessionCount --- Include/Aurora/IO/Net/ISocketServer.hpp | 1 + Source/IO/Net/AuNetSocketServer.cpp | 5 +++++ Source/IO/Net/AuNetSocketServer.hpp | 1 + .../AuNetDatagramEmulatorISocketServer.cpp | 13 +++++++++++++ .../AuNetDatagramEmulatorISocketServer.hpp | 1 + .../AuNetDatagramSocketServer.cpp | 5 +++++ .../AuNetDatagramSocketServer.hpp | 1 + 7 files changed, 27 insertions(+) diff --git a/Include/Aurora/IO/Net/ISocketServer.hpp b/Include/Aurora/IO/Net/ISocketServer.hpp index 9c42be84..25d127b9 100644 --- a/Include/Aurora/IO/Net/ISocketServer.hpp +++ b/Include/Aurora/IO/Net/ISocketServer.hpp @@ -12,6 +12,7 @@ namespace Aurora::IO::Net struct ISocketServer : virtual ISocketBase { virtual AuList> GetChildren() = 0; + virtual AuUInt32 GetSessionCount() = 0; virtual AuSPtr GetLimits() = 0; virtual AuSPtr GetServerDriver() = 0; }; diff --git a/Source/IO/Net/AuNetSocketServer.cpp b/Source/IO/Net/AuNetSocketServer.cpp index aa21562e..dba14126 100644 --- a/Source/IO/Net/AuNetSocketServer.cpp +++ b/Source/IO/Net/AuNetSocketServer.cpp @@ -153,6 +153,11 @@ namespace Aurora::IO::Net return ret; } + AuUInt32 SocketServer::GetSessionCount() + { + return this->childrenSockets.size(); + } + void SocketServer::OnNotifyChildCreated(SocketBase *pSocket) { { diff --git a/Source/IO/Net/AuNetSocketServer.hpp b/Source/IO/Net/AuNetSocketServer.hpp index 04be29da..bee3fe06 100644 --- a/Source/IO/Net/AuNetSocketServer.hpp +++ b/Source/IO/Net/AuNetSocketServer.hpp @@ -38,6 +38,7 @@ namespace Aurora::IO::Net AuSPtr GetFactory(); AuSPtr GetLimits() override; AuList> GetChildren() override; + AuUInt32 GetSessionCount() override; virtual void FinishConstructAsync() override; diff --git a/Source/IO/Net/SocketOverDatagram/AuNetDatagramEmulatorISocketServer.cpp b/Source/IO/Net/SocketOverDatagram/AuNetDatagramEmulatorISocketServer.cpp index 5ccb9685..a81d6b4d 100644 --- a/Source/IO/Net/SocketOverDatagram/AuNetDatagramEmulatorISocketServer.cpp +++ b/Source/IO/Net/SocketOverDatagram/AuNetDatagramEmulatorISocketServer.cpp @@ -88,4 +88,17 @@ namespace Aurora::IO::Net return {}; } } + + + AuUInt32 NetDatagramEmulatorISocketServer::GetSessionCount() + { + if (auto pParent = this->pParent) + { + return pParent->GetSessionCount(); + } + else + { + return {}; + } + } } \ No newline at end of file diff --git a/Source/IO/Net/SocketOverDatagram/AuNetDatagramEmulatorISocketServer.hpp b/Source/IO/Net/SocketOverDatagram/AuNetDatagramEmulatorISocketServer.hpp index 1d49a280..3a19e770 100644 --- a/Source/IO/Net/SocketOverDatagram/AuNetDatagramEmulatorISocketServer.hpp +++ b/Source/IO/Net/SocketOverDatagram/AuNetDatagramEmulatorISocketServer.hpp @@ -31,5 +31,6 @@ namespace Aurora::IO::Net AuSPtr GetLimits() override; AuList> GetChildren() override; AuSPtr GetLockedWorkerThread() override; + AuUInt32 GetSessionCount() override; }; } \ No newline at end of file diff --git a/Source/IO/Net/SocketOverDatagram/AuNetDatagramSocketServer.cpp b/Source/IO/Net/SocketOverDatagram/AuNetDatagramSocketServer.cpp index a05c32c6..e1c1dc07 100644 --- a/Source/IO/Net/SocketOverDatagram/AuNetDatagramSocketServer.cpp +++ b/Source/IO/Net/SocketOverDatagram/AuNetDatagramSocketServer.cpp @@ -226,6 +226,11 @@ namespace Aurora::IO::Net return ret; } + AuUInt32 NetDatagramSocketServer::GetSessionCount() + { + return this->sessions.size(); + } + AuSPtr NetDatagramSocketServer::GetLockedWorkerThread() { if (auto pWorker = this->pWorker_) diff --git a/Source/IO/Net/SocketOverDatagram/AuNetDatagramSocketServer.hpp b/Source/IO/Net/SocketOverDatagram/AuNetDatagramSocketServer.hpp index ba04da0d..5c9e9663 100644 --- a/Source/IO/Net/SocketOverDatagram/AuNetDatagramSocketServer.hpp +++ b/Source/IO/Net/SocketOverDatagram/AuNetDatagramSocketServer.hpp @@ -39,6 +39,7 @@ namespace Aurora::IO::Net void Cleanup(const AuSPtr &pSession); AuList> GetAllSessions(); AuList> GetAllChildren(); + AuUInt32 GetSessionCount(); AuSPtr ToDriver(); AuSPtr ToSocketServer();