Refactoring to unique product message types, in order to support more products

This commit is contained in:
Dan Paulat 2022-01-13 02:05:56 -06:00
parent 235c060b17
commit dc545f19e9
11 changed files with 742 additions and 177 deletions

View file

@ -0,0 +1,49 @@
#include <scwx/wsr88d/rpg/level3_message.hpp>
#include <boost/log/trivial.hpp>
namespace scwx
{
namespace wsr88d
{
namespace rpg
{
static const std::string logPrefix_ = "[scwx::wsr88d::rpg::level3_message] ";
class Level3MessageImpl
{
public:
explicit Level3MessageImpl() : header_() {};
~Level3MessageImpl() = default;
Level3MessageHeader header_;
};
Level3Message::Level3Message() :
Message(), p(std::make_unique<Level3MessageImpl>())
{
}
Level3Message::~Level3Message() = default;
Level3Message::Level3Message(Level3Message&&) noexcept = default;
Level3Message& Level3Message::operator=(Level3Message&&) noexcept = default;
size_t Level3Message::data_size() const
{
return (header().length_of_message() - header().SIZE);
}
const Level3MessageHeader& Level3Message::header() const
{
return p->header_;
}
void Level3Message::set_header(Level3MessageHeader&& header)
{
p->header_ = std::move(header);
}
} // namespace rpg
} // namespace wsr88d
} // namespace scwx