Files
FlaxEngine/Source/Engine/Networking/NetworkHost.h
2021-05-29 20:19:09 +02:00

49 lines
1.1 KiB
C++

// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
#pragma once
#include "Types.h"
#include "NetworkConfig.h"
#include "Engine/Core/Collections/Array.h"
struct FLAXENGINE_API NetworkHost
{
public:
int HostId;
NetworkConfig Config;
INetworkDriver* NetworkDriver = nullptr;
uint8* MessageBuffer = nullptr;
Array<uint32, HeapAllocation> MessagePool;
public:
void Initialize(const NetworkConfig& config);
void Shutdown();
void CreateMessageBuffers();
void DisposeMessageBuffers();
bool IsValid() const
{
return NetworkDriver != nullptr;
}
uint8* GetMessageBuffer(const uint32 messageId) const
{
// Calculate and return the buffer slice using previously calculated slice.
return MessageBuffer + Config.MessageSize * messageId;
}
public:
FORCE_INLINE bool operator==(const NetworkHost& other) const
{
return HostId == other.HostId;
}
FORCE_INLINE bool operator!=(const NetworkHost& other) const
{
return HostId != other.HostId;
}
};