diff --git a/Source/Engine/Networking/NetworkStream.cpp b/Source/Engine/Networking/NetworkStream.cpp index f7ce87156..6de667878 100644 --- a/Source/Engine/Networking/NetworkStream.cpp +++ b/Source/Engine/Networking/NetworkStream.cpp @@ -1,6 +1,7 @@ // Copyright (c) 2012-2023 Wojciech Figat. All rights reserved. #include "NetworkStream.h" +#include "INetworkSerializable.h" NetworkStream::NetworkStream(const SpawnParams& params) : ScriptingObject(params) @@ -47,6 +48,26 @@ void NetworkStream::Initialize(byte* buffer, uint32 length) _allocated = false; } +void NetworkStream::Read(INetworkSerializable& obj) +{ + obj.Deserialize(this); +} + +void NetworkStream::Read(INetworkSerializable* obj) +{ + obj->Deserialize(this); +} + +void NetworkStream::Write(INetworkSerializable& obj) +{ + obj.Serialize(this); +} + +void NetworkStream::Write(INetworkSerializable* obj) +{ + obj->Serialize(this); +} + void NetworkStream::Flush() { // Nothing to do diff --git a/Source/Engine/Networking/NetworkStream.h b/Source/Engine/Networking/NetworkStream.h index af87c2363..190bd0dcb 100644 --- a/Source/Engine/Networking/NetworkStream.h +++ b/Source/Engine/Networking/NetworkStream.h @@ -6,6 +6,8 @@ #include "Engine/Serialization/ReadStream.h" #include "Engine/Serialization/WriteStream.h" +class INetworkSerializable; + /// /// Objects and values serialization stream for sending data over network. Uses memory buffer for both read and write operations. /// @@ -62,6 +64,14 @@ public: ReadBytes(data, bytes); } + using ReadStream::Read; + void Read(INetworkSerializable& obj); + void Read(INetworkSerializable* obj); + + using WriteStream::Write; + void Write(INetworkSerializable& obj); + void Write(INetworkSerializable* obj); + public: // [Stream] void Flush() override;