X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fnet%2FConnection.hpp;h=cc13ef60915df48dc676228535c50101f0eccc9d;hb=da5073a7fdb1ca066e778a02db33d5d15073aea0;hp=49e9cdac3989eee5bd7b74969bd193502c3b3abc;hpb=9ebe2c320fd9f94266ab93fa2f9d9908a0a284d3;p=blank.git diff --git a/src/net/Connection.hpp b/src/net/Connection.hpp index 49e9cda..cc13ef6 100644 --- a/src/net/Connection.hpp +++ b/src/net/Connection.hpp @@ -1,8 +1,10 @@ #ifndef BLANK_NET_CONNECTION_HPP_ #define BLANK_NET_CONNECTION_HPP_ +#include "Packet.hpp" #include "../app/IntervalTimer.hpp" +#include #include @@ -17,24 +19,32 @@ public: bool Matches(const IPaddress &) const noexcept; - void FlagSend() noexcept; - void FlagRecv() noexcept; - bool ShouldPing() const noexcept; bool TimedOut() const noexcept; - void Update(int dt); + void Close() noexcept { closed = true; } + bool Closed() const noexcept { return closed || TimedOut(); } + void Update(int dt); void SendPing(UDPpacket &, UDPsocket); void Send(UDPpacket &, UDPsocket); + void Received(const UDPpacket &); + +private: + void FlagSend() noexcept; + void FlagRecv() noexcept; private: IPaddress addr; IntervalTimer send_timer; IntervalTimer recv_timer; + Packet::TControl ctrl; + + bool closed; + }; }