Files
Blitz2/include/blitz/network/EnetConnexion.h

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