Refactoring, making level 2 message classes more explicitly named

This commit is contained in:
Dan Paulat 2021-12-23 11:55:26 -06:00
parent cae04fad37
commit a280f37289
23 changed files with 236 additions and 155 deletions

View file

@ -0,0 +1,48 @@
#pragma once
#include <cstdint>
#include <memory>
namespace scwx
{
namespace wsr88d
{
namespace rda
{
class Level2MessageHeaderImpl;
class Level2MessageHeader
{
public:
explicit Level2MessageHeader();
~Level2MessageHeader();
Level2MessageHeader(const Level2MessageHeader&) = delete;
Level2MessageHeader& operator=(const Level2MessageHeader&) = delete;
Level2MessageHeader(Level2MessageHeader&&) noexcept;
Level2MessageHeader& operator=(Level2MessageHeader&&) noexcept;
uint16_t message_size() const;
uint8_t rda_redundant_channel() const;
uint8_t message_type() const;
uint16_t id_sequence_number() const;
uint16_t julian_date() const;
uint32_t milliseconds_of_day() const;
uint16_t number_of_message_segments() const;
uint16_t message_segment_number() const;
void set_message_size(uint16_t messageSize);
bool Parse(std::istream& is);
static const size_t SIZE = 16u;
private:
std::unique_ptr<Level2MessageHeaderImpl> p;
};
} // namespace rda
} // namespace wsr88d
} // namespace scwx