basic packet structure

This commit is contained in:
2025-02-05 15:00:19 +01:00
parent cfeea10634
commit 65275a2cc6
35 changed files with 423 additions and 1408 deletions

38
include/sp/Message.h Normal file
View File

@@ -0,0 +1,38 @@
#pragma once
#include <memory>
#include <vector>
#include <sp/common/DataBuffer.h>
namespace sp {
class Handler;
class Message {
public:
virtual ~Message() {}
void Write(DataBuffer& buffer) const {
buffer << GetId();
WriteImpl(buffer);
}
void Read(const DataBuffer& buffer) {
ReadImpl(buffer);
}
void Dispatch(Handler& handler) {
DispatchImpl(handler);
}
virtual int GetId() const = 0;
virtual std::string_view GetName() const = 0;
protected:
virtual void DispatchImpl(Handler& handler) = 0;
virtual void WriteImpl(DataBuffer& buffer) const = 0;
virtual void ReadImpl(const DataBuffer& buffer) = 0;
};
} // namespace sp