]> git.localhorst.tv Git - blank.git/blobdiff - src/net/Connection.hpp
fixed transmission control
[blank.git] / src / net / Connection.hpp
index 58f315d4d58e0358033cc74dee6e4e1162cd1a14..ed7a946aab01d2296123f9f68229d46a2b9b4b48 100644 (file)
 
 namespace blank {
 
-class PacketHandler;
+class ConnectionHandler;
 
 class Connection {
 
 public:
        explicit Connection(const IPaddress &);
 
-       void SetHandler(PacketHandler *h) noexcept { handler = h; }
+       void SetHandler(ConnectionHandler *h) noexcept { handler = h; }
        void RemoveHandler() noexcept { handler = nullptr; }
        bool HasHandler() const noexcept { return handler; }
-       PacketHandler &Handler() noexcept { return *handler; }
+       ConnectionHandler &Handler() noexcept { return *handler; }
 
        const IPaddress &Address() const noexcept { return addr; }
 
@@ -30,13 +30,13 @@ public:
        bool TimedOut() const noexcept;
 
        void Close() noexcept { closed = true; }
-       bool Closed() const noexcept { return closed || TimedOut(); }
+       bool Closed() const noexcept { return closed; }
 
        void Update(int dt);
 
-       void SendPing(UDPpacket &, UDPsocket);
+       std::uint16_t SendPing(UDPpacket &, UDPsocket);
 
-       void Send(UDPpacket &, UDPsocket);
+       std::uint16_t Send(UDPpacket &, UDPsocket);
        void Received(const UDPpacket &);
 
 private:
@@ -44,12 +44,13 @@ private:
        void FlagRecv() noexcept;
 
 private:
-       PacketHandler *handler;
+       ConnectionHandler *handler;
        IPaddress addr;
        IntervalTimer send_timer;
        IntervalTimer recv_timer;
 
-       Packet::TControl ctrl;
+       Packet::TControl ctrl_out;
+       Packet::TControl ctrl_in;
 
        bool closed;