timed packets

This commit is contained in:
2023-08-12 14:43:20 +02:00
parent 0a814233a4
commit 88a9020da7
4 changed files with 79 additions and 30 deletions

View File

@@ -54,13 +54,37 @@ public:
virtual void Deserialize(DataBuffer& data) = 0;
virtual void Dispatch(PacketHandler* handler) const = 0;
void WritePacketID(DataBuffer& data, bool packetID) const;
virtual void WritePacketID(DataBuffer& data, bool packetID) const;
virtual PacketType GetType() const = 0;
std::uint8_t GetID() const { return static_cast<std::uint8_t>(GetType()); }
virtual bool IsTimed() const { return false; }
};
class TimedPacket : public Packet {
protected:
std::uint64_t m_PacketTime = 69;
public:
TimedPacket() {}
virtual ~TimedPacket() {}
virtual DataBuffer Serialize(bool packetID = true) const = 0;
virtual void Deserialize(DataBuffer& data) = 0;
virtual void Dispatch(PacketHandler* handler) const = 0;
virtual void WritePacketID(DataBuffer& data, bool packetID) const override;
virtual PacketType GetType() const = 0;
virtual bool IsTimed() const override { return true; }
void SetPacketTime(std::uint64_t packetTime) { m_PacketTime = packetTime; }
};
typedef std::unique_ptr<Packet> PacketPtr;
typedef std::unique_ptr<TimedPacket> TimedPacketPtr;
} // namespace protocol
} // namespace td

View File

@@ -5,7 +5,7 @@
namespace td {
namespace protocol {
class KeepAlivePacket : public Packet {
class KeepAlivePacket : public TimedPacket {
private:
std::uint64_t m_AliveID;
public: