X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fnet%2FConnectionHandler.hpp;h=ff5e0e42204c8ab9998b83ac9630aae71e19d210;hb=ce10bfbe252d5598bbb559c6ce55aed1b9393227;hp=d0172fd2f87eeb07c30c1a43334abea0f02a6ca8;hpb=8507332e2d0c54aec4045fb6f0021bdc3bd57750;p=blank.git diff --git a/src/net/ConnectionHandler.hpp b/src/net/ConnectionHandler.hpp index d0172fd..ff5e0e4 100644 --- a/src/net/ConnectionHandler.hpp +++ b/src/net/ConnectionHandler.hpp @@ -1,6 +1,7 @@ #ifndef BLANK_NET_CONNECTIONHANDLER_HPP_ #define BLANK_NET_CONNECTIONHANDLER_HPP_ +#include "CongestionControl.hpp" #include "Packet.hpp" #include @@ -11,16 +12,27 @@ namespace blank { class ConnectionHandler { public: + ConnectionHandler(); + + const CongestionControl &NetStat() const noexcept { return cc; } + + void PacketSent(std::uint16_t) noexcept; + void PacketLost(std::uint16_t); + void PacketReceived(std::uint16_t); + + void PacketIn(const UDPpacket &) noexcept; + void PacketOut(const UDPpacket &) noexcept; + void Handle(const UDPpacket &); + virtual void OnTimeout() { } + +private: // called as soon as the remote end ack'd given packet virtual void OnPacketReceived(std::uint16_t) { } // called if the remote end probably didn't get given packet virtual void OnPacketLost(std::uint16_t) { } - virtual void OnTimeout() { } - -private: virtual void On(const Packet::Ping &) { } virtual void On(const Packet::Login &) { } virtual void On(const Packet::Join &) { } @@ -30,6 +42,13 @@ private: virtual void On(const Packet::DespawnEntity &) { } virtual void On(const Packet::EntityUpdate &) { } virtual void On(const Packet::PlayerCorrection &) { } + virtual void On(const Packet::ChunkBegin &) { } + virtual void On(const Packet::ChunkData &) { } + virtual void On(const Packet::BlockUpdate &) { } + virtual void On(const Packet::Message &) { } + +private: + CongestionControl cc; };