52 lines
1.1 KiB
C++
52 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <NazaraUtils/Signal.hpp>
|
|
#include <blitz/protocol/PacketSerializer.h>
|
|
#include <blitz/protocol/Packets.h>
|
|
|
|
namespace Nz {
|
|
|
|
class ENetPeer;
|
|
|
|
} // namespace Nz
|
|
|
|
namespace blitz {
|
|
namespace network {
|
|
|
|
class EnetClient;
|
|
class EnetServer;
|
|
|
|
|
|
|
|
#define DeclarePacket(PacketName, ...) \
|
|
void Send##PacketName(const blitz::protocol::data::PacketName& a_##PacketName) const; \
|
|
\
|
|
NazaraSignal(On##PacketName, const blitz::protocol::data::PacketName&);
|
|
|
|
|
|
|
|
|
|
|
|
class EnetConnexion {
|
|
public:
|
|
EnetConnexion(Nz::ENetPeer* a_Peer = nullptr);
|
|
|
|
bool IsConnected() const;
|
|
|
|
DeclareAllPacket()
|
|
|
|
private :
|
|
Nz::ENetPeer* m_Peer;
|
|
|
|
void Recieve(Nz::ByteArray&);
|
|
void SetPeer(Nz::ENetPeer* a_Peer);
|
|
|
|
friend class EnetClient;
|
|
friend class EnetServer;
|
|
};
|
|
|
|
#undef DeclarePacket
|
|
|
|
} // namespace network
|
|
} // namespace blitz
|