From f6324ada91d412e041592598245770835991cbc6 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Tue, 20 May 2014 14:36:33 -0700 Subject: Generate login/user protocol --- src/net/packets.hpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/net/packets.hpp') diff --git a/src/net/packets.hpp b/src/net/packets.hpp index c0f3ecb..6146b90 100644 --- a/src/net/packets.hpp +++ b/src/net/packets.hpp @@ -228,6 +228,7 @@ RecvResult recv_vpacket(Session *s, Packet_Head& head, std::vector @@ -322,4 +323,36 @@ RecvResult recv_packet_repeatonly(Session *s, std::vector>& v) return recv_vpacket(s, head, v); } + +// and the combination of both of the above + +template +void send_packet_repeatonly(Session *s, const XString& repeat) +{ + static_assert(id == Packet_Head::PACKET_ID, "Packet_Head::PACKET_ID"); + static_assert(headsize == sizeof(NetPacket_Head), "repeat headsize"); + static_assert(headsize == 4, "repeat headsize"); + static_assert(id == Packet_Repeat::PACKET_ID, "Packet_Repeat::PACKET_ID"); + static_assert(repeatsize == sizeof(NetPacket_Repeat), "sizeof(NetPacket_Repeat)"); + static_assert(repeatsize == 1, "repeatsize"); + + Packet_Head head; + send_vpacket(s, head, repeat); +} + +template +__attribute__((warn_unused_result)) +RecvResult recv_packet_repeatonly(Session *s, AString& repeat) +{ + static_assert(id == Packet_Head::PACKET_ID, "Packet_Head::PACKET_ID"); + static_assert(headsize == sizeof(NetPacket_Head), "repeat headsize"); + static_assert(headsize == 4, "repeat headsize"); + static_assert(id == Packet_Repeat::PACKET_ID, "Packet_Repeat::PACKET_ID"); + static_assert(repeatsize == sizeof(NetPacket_Repeat), "sizeof(NetPacket_Repeat)"); + static_assert(repeatsize == 1, "repeatsize"); + + Packet_Head head; + return recv_vpacket(s, head, repeat); +} + #endif // TMWA_NET_PACKETS_HPP -- cgit v1.2.3-60-g2f50