49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Engine/Scripting/ScriptingType.h"
|
|
|
|
API_STRUCT(Namespace="FlaxEngine.Networking") struct FLAXENGINE_API NetworkMessage
|
|
{
|
|
DECLARE_SCRIPTING_TYPE_MINIMAL(NetworkMessage);
|
|
public:
|
|
API_FIELD()
|
|
uint8* Buffer = nullptr;
|
|
|
|
API_FIELD()
|
|
uint32 MessageId = 0; // TODO: Make it read-only
|
|
|
|
API_FIELD()
|
|
uint32 BufferSize = 0;
|
|
|
|
API_FIELD()
|
|
uint32 Length = 0;
|
|
|
|
API_FIELD()
|
|
uint32 Position = 0;
|
|
|
|
public:
|
|
NetworkMessage() = default;
|
|
|
|
NetworkMessage(uint8* buffer, uint32 messageId, uint32 bufferSize, uint32 length, uint32 position) :
|
|
Buffer(buffer), MessageId(messageId), BufferSize(bufferSize), Length(length), Position(position)
|
|
{ }
|
|
|
|
~NetworkMessage() = default;
|
|
|
|
public:
|
|
void WriteBytes(uint8* bytes, int numBytes);
|
|
void ReadBytes(uint8* bytes, int numBytes);
|
|
|
|
public:
|
|
void WriteUInt32(uint32 value); // TODO: Macro the shit out of this
|
|
uint32 ReadUInt32();
|
|
|
|
public:
|
|
bool IsValid() const
|
|
{
|
|
return Buffer != nullptr && BufferSize > 0;
|
|
}
|
|
};
|