]> git.localhorst.tv Git - blank.git/blobdiff - src/net/Connection.hpp
defined and implemented join and part packets
[blank.git] / src / net / Connection.hpp
index 49e9cdac3989eee5bd7b74969bd193502c3b3abc..cc13ef60915df48dc676228535c50101f0eccc9d 100644 (file)
@@ -1,8 +1,10 @@
 #ifndef BLANK_NET_CONNECTION_HPP_
 #define BLANK_NET_CONNECTION_HPP_
 
+#include "Packet.hpp"
 #include "../app/IntervalTimer.hpp"
 
+#include <cstdint>
 #include <SDL_net.h>
 
 
@@ -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;
+
 };
 
 }