43 lines
754 B
C++
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;
|
|
}
|
|
}; |