From e7d99057ba9cc6b435ba915422ea3e6b1fbe7192 Mon Sep 17 00:00:00 2001 From: Damian Korczowski Date: Thu, 11 Mar 2021 20:04:10 +0100 Subject: [PATCH] Expose CreateMessage/RecycleMessage to the API --- Source/Engine/Networking/NetworkManager.cpp | 44 +++++++++++---------- Source/Engine/Networking/NetworkManager.h | 6 +-- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/Source/Engine/Networking/NetworkManager.cpp b/Source/Engine/Networking/NetworkManager.cpp index 8c144f84c..d0cc7382b 100644 --- a/Source/Engine/Networking/NetworkManager.cpp +++ b/Source/Engine/Networking/NetworkManager.cpp @@ -68,6 +68,8 @@ bool NetworkManager::Listen() void NetworkManager::Connect() { + // TODO: Support multiple hosts + LOG(Info, "Connecting to 127.0.0.1:{0}...", Config.Port); // TODO: Proper IP address ASSERT(NetworkDriver != nullptr); @@ -97,6 +99,27 @@ bool NetworkManager::PopEvent(NetworkEvent* eventPtr) return NetworkDriver->PopEvent(eventPtr); } +NetworkMessage NetworkManager::CreateMessage() +{ + ASSERT(MessagePool.Count() > 0); + + const uint32 messageId = MessagePool.Pop(); + uint8* messageBuffer = GetMessageBuffer(messageId); + + return NetworkMessage(messageBuffer, messageId, Config.MessageSize, 0, 0); +} + +void NetworkManager::RecycleMessage(const NetworkMessage& message) +{ + ASSERT(message.IsValid()); +#ifdef BUILD_DEBUG + ASSERT(MessagePool.Contains(message.MessageId) == false); +#endif + + // Return the message id + MessagePool.Push(message.MessageId); +} + NetworkMessage NetworkManager::BeginSendMessage() { ASSERT(NetworkDriver != nullptr); @@ -121,27 +144,6 @@ bool NetworkManager::EndSendMessage(const NetworkChannelType channelType, const return false; } -NetworkMessage NetworkManager::CreateMessage() -{ - ASSERT(MessagePool.Count() > 0); - - const uint32 messageId = MessagePool.Pop(); - uint8* messageBuffer = GetMessageBuffer(messageId); - - return NetworkMessage(messageBuffer, messageId, Config.MessageSize, 0, 0); -} - -void NetworkManager::RecycleMessage(const NetworkMessage& message) -{ - ASSERT(message.IsValid()); -#ifdef BUILD_DEBUG - ASSERT(MessagePool.Contains(message.MessageId) == false); -#endif - - // Return the message id - MessagePool.Push(message.MessageId); -} - void NetworkManager::CreateMessageBuffers() { ASSERT(MessageBuffer == nullptr); diff --git a/Source/Engine/Networking/NetworkManager.h b/Source/Engine/Networking/NetworkManager.h index 83e7f5de6..ffcc48fc0 100644 --- a/Source/Engine/Networking/NetworkManager.h +++ b/Source/Engine/Networking/NetworkManager.h @@ -19,6 +19,9 @@ public: API_FUNCTION() static void Disconnect(const NetworkConnection& connection); API_FUNCTION() static bool PopEvent(NetworkEvent* eventPtr); + + API_FUNCTION() static NetworkMessage CreateMessage(); + API_FUNCTION() static void RecycleMessage(const NetworkMessage& message); API_FUNCTION() static NetworkMessage BeginSendMessage(); API_FUNCTION() static void AbortSendMessage(const NetworkMessage& message); @@ -29,9 +32,6 @@ public: private: - static NetworkMessage CreateMessage(); - static void RecycleMessage(const NetworkMessage& message); - static void CreateMessageBuffers(); static void DisposeMessageBuffers(); static uint8* GetMessageBuffer(uint32 messageId);