#pragma once #include "ParseArgs.h" #include "cache.h" #include "curlfuncs.h" #include "mdatetime.h" #include using michlib::MDateTime; using michlib::MString; class COPERNICUSData { static const MString caturl; std::unique_ptr cache; CURLRAII chandle; Json::Value catalog; char curlerr[CURL_ERROR_SIZE]; // Get url for product or dataset from catalog static MString ReadURL(const Json::Value& cat, const MString& prod); // Download JSON from url std::pair GetJSON(const MString& url); // Get remote file list from url std::pair,MString> ReadRemoteFileList(const MString& url); public: static constexpr const char* name = "COPERNICUS"; COPERNICUSData() = default; // Main mirror function MString Mirror(const CLArgs& args); };