mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 21:30:05 +00:00
Nexrad File Factory
This commit is contained in:
parent
3620bfd13a
commit
a32029cb31
11 changed files with 322 additions and 31 deletions
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/nexrad_file.hpp>
|
||||
#include <scwx/wsr88d/rda/digital_radar_data.hpp>
|
||||
#include <scwx/wsr88d/rda/volume_coverage_pattern_data.hpp>
|
||||
|
||||
|
|
@ -19,7 +20,7 @@ class Ar2vFileImpl;
|
|||
* the Archive II/User, Document Number 2620010H, published by the WSR-88D Radar
|
||||
* Operations Center.
|
||||
*/
|
||||
class Ar2vFile
|
||||
class Ar2vFile : public NexradFile
|
||||
{
|
||||
public:
|
||||
explicit Ar2vFile();
|
||||
|
|
@ -46,6 +47,7 @@ public:
|
|||
std::chrono::system_clock::time_point time) const;
|
||||
|
||||
bool LoadFile(const std::string& filename);
|
||||
bool LoadData(std::istream& is);
|
||||
|
||||
private:
|
||||
std::unique_ptr<Ar2vFileImpl> p;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/nexrad_file.hpp>
|
||||
#include <scwx/wsr88d/rpg/level3_message.hpp>
|
||||
|
||||
#include <memory>
|
||||
|
|
@ -12,7 +13,7 @@ namespace wsr88d
|
|||
|
||||
class Level3FileImpl;
|
||||
|
||||
class Level3File
|
||||
class Level3File : public NexradFile
|
||||
{
|
||||
public:
|
||||
explicit Level3File();
|
||||
|
|
|
|||
35
wxdata/include/scwx/wsr88d/nexrad_file.hpp
Normal file
35
wxdata/include/scwx/wsr88d/nexrad_file.hpp
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
|
||||
class NexradFileImpl;
|
||||
|
||||
class NexradFile
|
||||
{
|
||||
protected:
|
||||
explicit NexradFile();
|
||||
|
||||
NexradFile(const NexradFile&) = delete;
|
||||
NexradFile& operator=(const NexradFile&) = delete;
|
||||
|
||||
NexradFile(NexradFile&&) noexcept;
|
||||
NexradFile& operator=(NexradFile&&) noexcept;
|
||||
|
||||
public:
|
||||
virtual ~NexradFile();
|
||||
|
||||
virtual bool LoadFile(const std::string& filename) = 0;
|
||||
virtual bool LoadData(std::istream& is) = 0;
|
||||
|
||||
private:
|
||||
std::unique_ptr<NexradFileImpl> p;
|
||||
};
|
||||
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
28
wxdata/include/scwx/wsr88d/nexrad_file_factory.hpp
Normal file
28
wxdata/include/scwx/wsr88d/nexrad_file_factory.hpp
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#pragma once
|
||||
|
||||
#include <scwx/wsr88d/nexrad_file.hpp>
|
||||
|
||||
namespace scwx
|
||||
{
|
||||
namespace wsr88d
|
||||
{
|
||||
|
||||
class NexradFileFactory
|
||||
{
|
||||
private:
|
||||
explicit NexradFileFactory() = delete;
|
||||
~NexradFileFactory() = delete;
|
||||
|
||||
NexradFileFactory(const NexradFileFactory&) = delete;
|
||||
NexradFileFactory& operator=(const NexradFileFactory&) = delete;
|
||||
|
||||
NexradFileFactory(NexradFileFactory&&) noexcept = delete;
|
||||
NexradFileFactory& operator=(NexradFileFactory&&) noexcept = delete;
|
||||
|
||||
public:
|
||||
static std::shared_ptr<NexradFile> Create(const std::string& filename);
|
||||
static std::shared_ptr<NexradFile> Create(std::istream& is);
|
||||
};
|
||||
|
||||
} // namespace wsr88d
|
||||
} // namespace scwx
|
||||
Loading…
Add table
Add a link
Reference in a new issue