mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 06:00:05 +00:00
42 lines
685 B
C++
42 lines
685 B
C++
#pragma once
|
|
|
|
#include <scwx/wsr88d/rda/message_header.hpp>
|
|
|
|
namespace scwx
|
|
{
|
|
namespace wsr88d
|
|
{
|
|
namespace rda
|
|
{
|
|
|
|
class MessageImpl;
|
|
|
|
class Message
|
|
{
|
|
protected:
|
|
explicit Message();
|
|
|
|
Message(const Message&) = delete;
|
|
Message& operator=(const Message&) = delete;
|
|
|
|
Message(Message&&) noexcept;
|
|
Message& operator=(Message&&) noexcept;
|
|
|
|
bool ValidateSize(std::istream& is, size_t bytesRead) const;
|
|
|
|
public:
|
|
virtual ~Message();
|
|
|
|
const MessageHeader& header() const;
|
|
|
|
void set_header(MessageHeader&& header);
|
|
|
|
virtual bool Parse(std::istream& is) = 0;
|
|
|
|
private:
|
|
std::unique_ptr<MessageImpl> p;
|
|
};
|
|
|
|
} // namespace rda
|
|
} // namespace wsr88d
|
|
} // namespace scwx
|