Navigator2Go  2.0
Manage your local Ocean Navigator installation.
xmlio.h
1 #ifndef XMLIO_H
2 #define XMLIO_H
3 
4 #include "nodiscard.h"
5 
6 #include <QString>
7 
8 #include <pugixml/pugixml.hpp>
9 
10 #include <optional>
11 
12 namespace IO {
13 
14 /***********************************************************************************/
16 struct NODISCARD DatasetScanDesc {
17  const QString DatasetName;
18  const QString Location;
19 };
20 
21 /***********************************************************************************/
23 NODISCARD std::optional<pugi::xml_document> readXML(const QString& path);
24 
25 /***********************************************************************************/
27 
28 void appendDatasetToCatalog(pugi::xml_document& doc, const QString& datasetName);
29 
30 /***********************************************************************************/
32 
33 bool addDataset(const QString& rootCatalogFolder, const QString& datasetName, const QString& dataPath);
34 
35 /***********************************************************************************/
37 
38 void removeDataset(const QString& rootCatalogFolder, const QString& datasetName, const QString& dataPath);
39 
40 /***********************************************************************************/
42 NODISCARD bool datasetExists(const QString& threddsCatalogLoc, const QString& datasetName);
43 
44 /***********************************************************************************/
46 void createNewPrimaryCatalog(const QString& threddsContentPath);
47 
48 /***********************************************************************************/
50 void createNewCatalogFile(const QString& threddsContentPath, const DatasetScanDesc& dataset);
51 
52 /***********************************************************************************/
54 NODISCARD pugi::xml_document createNewAggregateFile();
55 
56 /***********************************************************************************/
58 NODISCARD QStringList getTHREDDSDatasetList(const pugi::xml_document& doc);
59 
60 } // namespace IO
61 
62 #endif // XMLIO_H
Definition: xmlio.h:16
Definition: ioutils.cpp:17