Add NEXRAD data provider function to get time points by date

This commit is contained in:
Dan Paulat 2023-05-16 22:42:09 -05:00
parent 3bee6f65e5
commit a9f5a766cc
4 changed files with 83 additions and 9 deletions

View file

@ -20,23 +20,26 @@ public:
const std::string& region);
virtual ~AwsNexradDataProvider();
AwsNexradDataProvider(const AwsNexradDataProvider&) = delete;
AwsNexradDataProvider(const AwsNexradDataProvider&) = delete;
AwsNexradDataProvider& operator=(const AwsNexradDataProvider&) = delete;
AwsNexradDataProvider(AwsNexradDataProvider&&) noexcept;
AwsNexradDataProvider& operator=(AwsNexradDataProvider&&) noexcept;
size_t cache_size() const;
size_t cache_size() const override;
std::chrono::system_clock::time_point last_modified() const;
std::chrono::seconds update_period() const;
std::chrono::system_clock::time_point last_modified() const override;
std::chrono::seconds update_period() const override;
std::string FindKey(std::chrono::system_clock::time_point time);
std::string FindLatestKey();
std::string FindKey(std::chrono::system_clock::time_point time) override;
std::string FindLatestKey() override;
std::vector<std::chrono::system_clock::time_point>
GetTimePointsByDate(std::chrono::system_clock::time_point date) override;
std::pair<size_t, size_t>
ListObjects(std::chrono::system_clock::time_point date);
std::shared_ptr<wsr88d::NexradFile> LoadObjectByKey(const std::string& key);
std::pair<size_t, size_t> Refresh();
ListObjects(std::chrono::system_clock::time_point date) override;
std::shared_ptr<wsr88d::NexradFile>
LoadObjectByKey(const std::string& key) override;
std::pair<size_t, size_t> Refresh() override;
protected:
std::shared_ptr<Aws::S3::S3Client> client();

View file

@ -101,6 +101,17 @@ public:
virtual std::chrono::system_clock::time_point
GetTimePointByKey(const std::string& key) const = 0;
/**
* Gets NEXRAD data time points for the date supplied. Lists and adds them
* to the cache if required.
*
* @param date Date for which to get NEXRAD data time points
*
* @return NEXRAD data time points
*/
virtual std::vector<std::chrono::system_clock::time_point>
GetTimePointsByDate(std::chrono::system_clock::time_point date) = 0;
/**
* Requests available NEXRAD products for the current radar site, and adds
* the list to the cache.