Merge remote-tracking branch 'origin/master' into 1.6

# Conflicts:
#	Source/Tools/Flax.Build/Build/Builder.Projects.cs
#	Source/Tools/Flax.Build/Build/Plugins/NetworkingPlugin.cs
This commit is contained in:
Wojtek Figat
2023-03-14 11:52:41 +01:00
25 changed files with 545 additions and 196 deletions

View File

@@ -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

View File

@@ -6,6 +6,8 @@
#include "Engine/Serialization/ReadStream.h"
#include "Engine/Serialization/WriteStream.h"
class INetworkSerializable;
/// <summary>
/// Objects and values serialization stream for sending data over network. Uses memory buffer for both read and write operations.
/// </summary>
@@ -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;