]> git.localhorst.tv Git - blank.git/blobdiff - src/net/Connection.hpp
reorganized client state
[blank.git] / src / net / Connection.hpp
index cc13ef60915df48dc676228535c50101f0eccc9d..58f315d4d58e0358033cc74dee6e4e1162cd1a14 100644 (file)
 
 namespace blank {
 
+class PacketHandler;
+
 class Connection {
 
 public:
        explicit Connection(const IPaddress &);
 
+       void SetHandler(PacketHandler *h) noexcept { handler = h; }
+       void RemoveHandler() noexcept { handler = nullptr; }
+       bool HasHandler() const noexcept { return handler; }
+       PacketHandler &Handler() noexcept { return *handler; }
+
        const IPaddress &Address() const noexcept { return addr; }
 
        bool Matches(const IPaddress &) const noexcept;
@@ -37,6 +44,7 @@ private:
        void FlagRecv() noexcept;
 
 private:
+       PacketHandler *handler;
        IPaddress addr;
        IntervalTimer send_timer;
        IntervalTimer recv_timer;