26 lines
484 B
C++
26 lines
484 B
C++
#pragma once
|
|
|
|
#include <iosfwd>
|
|
#include <sp/common/DataBuffer.h>
|
|
|
|
namespace sp {
|
|
|
|
template <typename TMessageID, typename THandler>
|
|
class MessageBase {
|
|
public:
|
|
using HandlerType = THandler;
|
|
using MessageIdType = TMessageID;
|
|
|
|
MessageBase() {}
|
|
virtual ~MessageBase() {}
|
|
|
|
virtual MessageIdType GetId() const = 0;
|
|
|
|
virtual void Dispatch(HandlerType& handler) const = 0;
|
|
|
|
virtual void Read(DataBuffer& a_Buffer) = 0;
|
|
virtual DataBuffer Write() const = 0;
|
|
};
|
|
|
|
} // namespace sp
|