Files
Simple-Protocol-Lib/include/examples/KeepAlivePacket.h
Persson-dev 10b49b34dd
All checks were successful
Linux arm64 / Build (push) Successful in 1m17s
working dispatcher + factory
2025-06-25 19:33:11 +02:00

43 lines
754 B
C++

#pragma once
#include <sp/default/DefaultPacket.h>
#include <sp/protocol/Field.h>
#include <sp/protocol/MessageBase.h>
template <sp::PacketID ID, typename TData>
class ConcreteMessage {
public:
using DataType = TData;
template<typename... T>
ConcreteMessage(const T&... args) : m_Data {args ...};
private:
DataType m_Data;
virtual sp::PacketID GetId() const {
return ID;
}
};
struct KeepAlivePacket {
std::uint64_t m_AliveId;
};
class KeepAliveMessage : public sp::MessageBase<sp::PacketMessage, sp::option::DispatchImpl<DisconnectPacket>> {
private:
KeepAlivePacket m_Data;
public:
template <typename... T>
KeepAliveMessage(T... args) : m_Data{args...} {}
virtual sp::PacketID GetId() const {
return KeepAlive;
}
};