Network/ENetHost: Expose AllocatePacket
This commit is contained in:
parent
25f44a624a
commit
359c176b03
|
|
@ -44,6 +44,9 @@ namespace Nz
|
||||||
ENetHost(ENetHost&&) = default;
|
ENetHost(ENetHost&&) = default;
|
||||||
inline ~ENetHost();
|
inline ~ENetHost();
|
||||||
|
|
||||||
|
ENetPacketRef AllocatePacket(ENetPacketFlags flags);
|
||||||
|
inline ENetPacketRef AllocatePacket(ENetPacketFlags flags, NetPacket&& data);
|
||||||
|
|
||||||
inline void AllowsIncomingConnections(bool allow = true);
|
inline void AllowsIncomingConnections(bool allow = true);
|
||||||
|
|
||||||
void Broadcast(UInt8 channelId, ENetPacketFlags flags, NetPacket&& packet);
|
void Broadcast(UInt8 channelId, ENetPacketFlags flags, NetPacket&& packet);
|
||||||
|
|
@ -79,9 +82,6 @@ namespace Nz
|
||||||
ENetHost& operator=(ENetHost&&) = default;
|
ENetHost& operator=(ENetHost&&) = default;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ENetPacketRef AllocatePacket(ENetPacketFlags flags);
|
|
||||||
inline ENetPacketRef AllocatePacket(ENetPacketFlags flags, NetPacket&& data);
|
|
||||||
|
|
||||||
bool InitSocket(const IpAddress& address);
|
bool InitSocket(const IpAddress& address);
|
||||||
|
|
||||||
void AddToDispatchQueue(ENetPeer* peer);
|
void AddToDispatchQueue(ENetPeer* peer);
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,14 @@ namespace Nz
|
||||||
Destroy();
|
Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline ENetPacketRef ENetHost::AllocatePacket(ENetPacketFlags flags, NetPacket&& data)
|
||||||
|
{
|
||||||
|
ENetPacketRef ref = AllocatePacket(flags);
|
||||||
|
ref->data = std::move(data);
|
||||||
|
|
||||||
|
return ref;
|
||||||
|
}
|
||||||
|
|
||||||
inline void ENetHost::AllowsIncomingConnections(bool allow)
|
inline void ENetHost::AllowsIncomingConnections(bool allow)
|
||||||
{
|
{
|
||||||
NazaraAssert(m_address.IsValid() && !m_address.IsLoopback(), "Only server hosts can allow incoming connections");
|
NazaraAssert(m_address.IsValid() && !m_address.IsLoopback(), "Only server hosts can allow incoming connections");
|
||||||
|
|
@ -101,14 +109,6 @@ namespace Nz
|
||||||
m_compressor = std::move(compressor);
|
m_compressor = std::move(compressor);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline ENetPacketRef ENetHost::AllocatePacket(ENetPacketFlags flags, NetPacket&& data)
|
|
||||||
{
|
|
||||||
ENetPacketRef ref = AllocatePacket(flags);
|
|
||||||
ref->data = std::move(data);
|
|
||||||
|
|
||||||
return ref;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline void ENetHost::UpdateServiceTime()
|
inline void ENetHost::UpdateServiceTime()
|
||||||
{
|
{
|
||||||
// Compute service time as microseconds for extra precision
|
// Compute service time as microseconds for extra precision
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,20 @@ namespace Nz
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ENetPacketRef ENetHost::AllocatePacket(ENetPacketFlags flags)
|
||||||
|
{
|
||||||
|
std::size_t poolIndex;
|
||||||
|
|
||||||
|
ENetPacket* packet = m_packetPool.Allocate(poolIndex);
|
||||||
|
|
||||||
|
ENetPacketRef enetPacket(&m_packetPool, packet);
|
||||||
|
enetPacket->flags = flags;
|
||||||
|
enetPacket->poolIndex = poolIndex;
|
||||||
|
enetPacket.m_pool = &m_packetPool;
|
||||||
|
|
||||||
|
return enetPacket;
|
||||||
|
}
|
||||||
|
|
||||||
void ENetHost::Broadcast(UInt8 channelId, ENetPacketFlags flags, NetPacket&& packet)
|
void ENetHost::Broadcast(UInt8 channelId, ENetPacketFlags flags, NetPacket&& packet)
|
||||||
{
|
{
|
||||||
ENetPacketRef enetPacket = AllocatePacket(flags, std::move(packet));
|
ENetPacketRef enetPacket = AllocatePacket(flags, std::move(packet));
|
||||||
|
|
@ -310,20 +324,6 @@ namespace Nz
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ENetPacketRef ENetHost::AllocatePacket(ENetPacketFlags flags)
|
|
||||||
{
|
|
||||||
std::size_t poolIndex;
|
|
||||||
|
|
||||||
ENetPacket* packet = m_packetPool.Allocate(poolIndex);
|
|
||||||
|
|
||||||
ENetPacketRef enetPacket(&m_packetPool, packet);
|
|
||||||
enetPacket->flags = flags;
|
|
||||||
enetPacket->poolIndex = poolIndex;
|
|
||||||
enetPacket.m_pool = &m_packetPool;
|
|
||||||
|
|
||||||
return enetPacket;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool ENetHost::InitSocket(const IpAddress& address)
|
bool ENetHost::InitSocket(const IpAddress& address)
|
||||||
{
|
{
|
||||||
if (!m_socket.Create((m_isUsingDualStack) ? NetProtocol::Any : address.GetProtocol()))
|
if (!m_socket.Create((m_isUsingDualStack) ? NetProtocol::Any : address.GetProtocol()))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue