mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 16:40:05 +00:00
Special graphic symbol packet
This commit is contained in:
parent
6d4428b8e0
commit
cbb3ec0368
18 changed files with 1380 additions and 0 deletions
48
wxdata/include/scwx/wsr88d/rpg/hda_hail_symbol_packet.hpp
Normal file
48
wxdata/include/scwx/wsr88d/rpg/hda_hail_symbol_packet.hpp
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/rpg/special_graphic_symbol_packet.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
namespace rpg
|
||||
{
|
||||
|
||||
class HdaHailSymbolPacketImpl;
|
||||
|
||||
class HdaHailSymbolPacket : public SpecialGraphicSymbolPacket
|
||||
{
|
||||
public:
|
||||
explicit HdaHailSymbolPacket();
|
||||
~HdaHailSymbolPacket();
|
||||
|
||||
HdaHailSymbolPacket(const HdaHailSymbolPacket&) = delete;
|
||||
HdaHailSymbolPacket& operator=(const HdaHailSymbolPacket&) = delete;
|
||||
|
||||
HdaHailSymbolPacket(HdaHailSymbolPacket&&) noexcept;
|
||||
HdaHailSymbolPacket& operator=(HdaHailSymbolPacket&&) noexcept;
|
||||
|
||||
int16_t i_position(size_t i) const;
|
||||
int16_t j_position(size_t i) const;
|
||||
int16_t probability_of_hail(size_t i) const;
|
||||
int16_t probability_of_severe_hail(size_t i) const;
|
||||
uint16_t max_hail_size(size_t i) const;
|
||||
|
||||
size_t RecordCount() const override;
|
||||
|
||||
static std::shared_ptr<HdaHailSymbolPacket> Create(std::istream& is);
|
||||
|
||||
protected:
|
||||
bool ParseData(std::istream& is) override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<HdaHailSymbolPacketImpl> p;
|
||||
};
|
||||
|
||||
} // namespace rpg
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
46
wxdata/include/scwx/wsr88d/rpg/mesocyclone_symbol_packet.hpp
Normal file
46
wxdata/include/scwx/wsr88d/rpg/mesocyclone_symbol_packet.hpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/rpg/special_graphic_symbol_packet.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
namespace rpg
|
||||
{
|
||||
|
||||
class MesocycloneSymbolPacketImpl;
|
||||
|
||||
class MesocycloneSymbolPacket : public SpecialGraphicSymbolPacket
|
||||
{
|
||||
public:
|
||||
explicit MesocycloneSymbolPacket();
|
||||
~MesocycloneSymbolPacket();
|
||||
|
||||
MesocycloneSymbolPacket(const MesocycloneSymbolPacket&) = delete;
|
||||
MesocycloneSymbolPacket& operator=(const MesocycloneSymbolPacket&) = delete;
|
||||
|
||||
MesocycloneSymbolPacket(MesocycloneSymbolPacket&&) noexcept;
|
||||
MesocycloneSymbolPacket& operator=(MesocycloneSymbolPacket&&) noexcept;
|
||||
|
||||
int16_t i_position(size_t i) const;
|
||||
int16_t j_position(size_t i) const;
|
||||
int16_t radius_of_mesocyclone(size_t i) const;
|
||||
|
||||
size_t RecordCount() const override;
|
||||
|
||||
static std::shared_ptr<MesocycloneSymbolPacket> Create(std::istream& is);
|
||||
|
||||
protected:
|
||||
bool ParseData(std::istream& is) override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<MesocycloneSymbolPacketImpl> p;
|
||||
};
|
||||
|
||||
} // namespace rpg
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/rpg/special_graphic_symbol_packet.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
namespace rpg
|
||||
{
|
||||
|
||||
class PointFeatureSymbolPacketImpl;
|
||||
|
||||
class PointFeatureSymbolPacket : public SpecialGraphicSymbolPacket
|
||||
{
|
||||
public:
|
||||
explicit PointFeatureSymbolPacket();
|
||||
~PointFeatureSymbolPacket();
|
||||
|
||||
PointFeatureSymbolPacket(const PointFeatureSymbolPacket&) = delete;
|
||||
PointFeatureSymbolPacket&
|
||||
operator=(const PointFeatureSymbolPacket&) = delete;
|
||||
|
||||
PointFeatureSymbolPacket(PointFeatureSymbolPacket&&) noexcept;
|
||||
PointFeatureSymbolPacket& operator=(PointFeatureSymbolPacket&&) noexcept;
|
||||
|
||||
int16_t i_position(size_t i) const;
|
||||
int16_t j_position(size_t i) const;
|
||||
uint16_t point_feature_type(size_t i) const;
|
||||
uint16_t point_feature_attribute(size_t i) const;
|
||||
|
||||
size_t RecordCount() const override;
|
||||
|
||||
static std::shared_ptr<PointFeatureSymbolPacket> Create(std::istream& is);
|
||||
|
||||
protected:
|
||||
size_t MinBlockLength() const override;
|
||||
size_t MaxBlockLength() const override;
|
||||
|
||||
bool ParseData(std::istream& is) override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<PointFeatureSymbolPacketImpl> p;
|
||||
};
|
||||
|
||||
} // namespace rpg
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/rpg/special_graphic_symbol_packet.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
namespace rpg
|
||||
{
|
||||
|
||||
class PointGraphicSymbolPacketImpl;
|
||||
|
||||
class PointGraphicSymbolPacket : public SpecialGraphicSymbolPacket
|
||||
{
|
||||
public:
|
||||
explicit PointGraphicSymbolPacket();
|
||||
~PointGraphicSymbolPacket();
|
||||
|
||||
PointGraphicSymbolPacket(const PointGraphicSymbolPacket&) = delete;
|
||||
PointGraphicSymbolPacket&
|
||||
operator=(const PointGraphicSymbolPacket&) = delete;
|
||||
|
||||
PointGraphicSymbolPacket(PointGraphicSymbolPacket&&) noexcept;
|
||||
PointGraphicSymbolPacket& operator=(PointGraphicSymbolPacket&&) noexcept;
|
||||
|
||||
int16_t i_position(size_t i) const;
|
||||
int16_t j_position(size_t i) const;
|
||||
|
||||
size_t RecordCount() const override;
|
||||
|
||||
static std::shared_ptr<PointGraphicSymbolPacket> Create(std::istream& is);
|
||||
|
||||
protected:
|
||||
bool ParseData(std::istream& is) override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<PointGraphicSymbolPacketImpl> p;
|
||||
};
|
||||
|
||||
} // namespace rpg
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
44
wxdata/include/scwx/wsr88d/rpg/scit_forecast_data_packet.hpp
Normal file
44
wxdata/include/scwx/wsr88d/rpg/scit_forecast_data_packet.hpp
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/rpg/special_graphic_symbol_packet.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
namespace rpg
|
||||
{
|
||||
|
||||
class ScitForecastDataPacketImpl;
|
||||
|
||||
class ScitForecastDataPacket : public SpecialGraphicSymbolPacket
|
||||
{
|
||||
public:
|
||||
explicit ScitForecastDataPacket();
|
||||
~ScitForecastDataPacket();
|
||||
|
||||
ScitForecastDataPacket(const ScitForecastDataPacket&) = delete;
|
||||
ScitForecastDataPacket& operator=(const ScitForecastDataPacket&) = delete;
|
||||
|
||||
ScitForecastDataPacket(ScitForecastDataPacket&&) noexcept;
|
||||
ScitForecastDataPacket& operator=(ScitForecastDataPacket&&) noexcept;
|
||||
|
||||
const std::vector<uint8_t>& data() const;
|
||||
|
||||
size_t RecordCount() const override;
|
||||
|
||||
static std::shared_ptr<ScitForecastDataPacket> Create(std::istream& is);
|
||||
|
||||
protected:
|
||||
bool ParseData(std::istream& is) override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<ScitForecastDataPacketImpl> p;
|
||||
};
|
||||
|
||||
} // namespace rpg
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/rpg/packet.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
namespace rpg
|
||||
{
|
||||
|
||||
class SpecialGraphicSymbolPacketImpl;
|
||||
|
||||
class SpecialGraphicSymbolPacket : public Packet
|
||||
{
|
||||
public:
|
||||
explicit SpecialGraphicSymbolPacket();
|
||||
~SpecialGraphicSymbolPacket();
|
||||
|
||||
SpecialGraphicSymbolPacket(const SpecialGraphicSymbolPacket&) = delete;
|
||||
SpecialGraphicSymbolPacket&
|
||||
operator=(const SpecialGraphicSymbolPacket&) = delete;
|
||||
|
||||
SpecialGraphicSymbolPacket(SpecialGraphicSymbolPacket&&) noexcept;
|
||||
SpecialGraphicSymbolPacket& operator=(SpecialGraphicSymbolPacket&&) noexcept;
|
||||
|
||||
uint16_t packet_code() const;
|
||||
uint16_t length_of_block() const;
|
||||
|
||||
size_t data_size() const override;
|
||||
|
||||
bool Parse(std::istream& is) override;
|
||||
|
||||
virtual size_t RecordCount() const = 0;
|
||||
|
||||
protected:
|
||||
virtual size_t MinBlockLength() const;
|
||||
virtual size_t MaxBlockLength() const;
|
||||
|
||||
virtual bool ParseData(std::istream& is) = 0;
|
||||
|
||||
private:
|
||||
std::unique_ptr<SpecialGraphicSymbolPacketImpl> p;
|
||||
};
|
||||
|
||||
} // namespace rpg
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
46
wxdata/include/scwx/wsr88d/rpg/sti_circle_symbol_packet.hpp
Normal file
46
wxdata/include/scwx/wsr88d/rpg/sti_circle_symbol_packet.hpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/rpg/special_graphic_symbol_packet.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
namespace rpg
|
||||
{
|
||||
|
||||
class StiCircleSymbolPacketImpl;
|
||||
|
||||
class StiCircleSymbolPacket : public SpecialGraphicSymbolPacket
|
||||
{
|
||||
public:
|
||||
explicit StiCircleSymbolPacket();
|
||||
~StiCircleSymbolPacket();
|
||||
|
||||
StiCircleSymbolPacket(const StiCircleSymbolPacket&) = delete;
|
||||
StiCircleSymbolPacket& operator=(const StiCircleSymbolPacket&) = delete;
|
||||
|
||||
StiCircleSymbolPacket(StiCircleSymbolPacket&&) noexcept;
|
||||
StiCircleSymbolPacket& operator=(StiCircleSymbolPacket&&) noexcept;
|
||||
|
||||
int16_t i_position(size_t i) const;
|
||||
int16_t j_position(size_t i) const;
|
||||
uint16_t radius_of_circle(size_t i) const;
|
||||
|
||||
size_t RecordCount() const override;
|
||||
|
||||
static std::shared_ptr<StiCircleSymbolPacket> Create(std::istream& is);
|
||||
|
||||
protected:
|
||||
bool ParseData(std::istream& is) override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<StiCircleSymbolPacketImpl> p;
|
||||
};
|
||||
|
||||
} // namespace rpg
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
46
wxdata/include/scwx/wsr88d/rpg/storm_id_symbol_packet.hpp
Normal file
46
wxdata/include/scwx/wsr88d/rpg/storm_id_symbol_packet.hpp
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/rpg/special_graphic_symbol_packet.hpp>
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
namespace rpg
|
||||
{
|
||||
|
||||
class StormIdSymbolPacketImpl;
|
||||
|
||||
class StormIdSymbolPacket : public SpecialGraphicSymbolPacket
|
||||
{
|
||||
public:
|
||||
explicit StormIdSymbolPacket();
|
||||
~StormIdSymbolPacket();
|
||||
|
||||
StormIdSymbolPacket(const StormIdSymbolPacket&) = delete;
|
||||
StormIdSymbolPacket& operator=(const StormIdSymbolPacket&) = delete;
|
||||
|
||||
StormIdSymbolPacket(StormIdSymbolPacket&&) noexcept;
|
||||
StormIdSymbolPacket& operator=(StormIdSymbolPacket&&) noexcept;
|
||||
|
||||
int16_t i_position(size_t i) const;
|
||||
int16_t j_position(size_t i) const;
|
||||
const std::array<char, 2>& character(size_t i) const;
|
||||
|
||||
size_t RecordCount() const override;
|
||||
|
||||
static std::shared_ptr<StormIdSymbolPacket> Create(std::istream& is);
|
||||
|
||||
protected:
|
||||
bool ParseData(std::istream& is) override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<StormIdSymbolPacketImpl> p;
|
||||
};
|
||||
|
||||
} // namespace rpg
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
Loading…
Add table
Add a link
Reference in a new issue