62 lines
1.1 KiB
C++
62 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include "ehs/Serializer.h"
|
|
|
|
namespace ehs
|
|
{
|
|
enum class NetStatus : UInt_8
|
|
{
|
|
DISCONNECTED,
|
|
ACTIVE,
|
|
PENDING,
|
|
QUEUED
|
|
};
|
|
|
|
enum class NetChannelType : UInt_8
|
|
{
|
|
SERVER,
|
|
CLIENT
|
|
};
|
|
|
|
struct Header
|
|
{
|
|
Version version = {};
|
|
UInt_64 encId = 0;
|
|
Version encVer = {};
|
|
UInt_64 channelId = 0;
|
|
NetChannelType channelType = NetChannelType::SERVER;
|
|
Version channelVer = {};
|
|
UInt_64 id = 0;
|
|
UInt_64 fragmentCount = 0;
|
|
UInt_64 fragment = 0;
|
|
bool ensure = false;
|
|
Char_8 token[64] = {};
|
|
UInt_64 systemId = 0;
|
|
UInt_64 opId = 0;
|
|
};
|
|
|
|
void WriteHeader(const Header &header, Serializer<UInt_64> &data);
|
|
|
|
Header ReadHeader(Serializer<UInt_64> &data);
|
|
|
|
struct Packet
|
|
{
|
|
Header header;
|
|
Serializer<UInt_64> payload;
|
|
};
|
|
|
|
struct Insurance
|
|
{
|
|
Header header;
|
|
Serializer<UInt_64> payload;
|
|
float lastResend;
|
|
};
|
|
}
|
|
|
|
#ifndef EHC_IPV4_PAYLOAD
|
|
#define EHC_IPV4_PAYLOAD (EHS_IPV4_UDP_PAYLOAD - (UInt_16)sizeof(Header))
|
|
#endif
|
|
|
|
#ifndef EHC_IPV6_PAYLOAD
|
|
#define EHC_IPV6_PAYLOAD (EHS_IPV6_UDP_PAYLOAD - (UInt_16)sizeof(Header))
|
|
#endif |