18 lines
374 B
C++
18 lines
374 B
C++
#pragma once
|
|
|
|
#include <sp/Message.h>
|
|
|
|
namespace sp {
|
|
|
|
template <typename TDerived>
|
|
class MessageBase : public Message {
|
|
protected:
|
|
virtual void DispatchImpl(Handler& handler) override {
|
|
handler.Handle(static_cast<TDerived&>(*this));
|
|
}
|
|
|
|
virtual void WriteImpl(DataBuffer& buffer) const = 0;
|
|
virtual void ReadImpl(const DataBuffer& buffer) = 0;
|
|
};
|
|
|
|
} // namespace sp
|