/src/gdal/frmts/eeda/eeda.h
Line | Count | Source |
1 | | /****************************************************************************** |
2 | | * |
3 | | * Project: Earth Engine Data API Images driver |
4 | | * Purpose: Earth Engine Data API Images driver |
5 | | * Author: Even Rouault, even dot rouault at spatialys.com |
6 | | * |
7 | | ****************************************************************************** |
8 | | * Copyright (c) 2017-2018, Planet Labs |
9 | | * |
10 | | * SPDX-License-Identifier: MIT |
11 | | ****************************************************************************/ |
12 | | |
13 | | #ifndef EEDA_H_INCLUDED |
14 | | #define EEDA_H_INCLUDED |
15 | | |
16 | | #include "cpl_string.h" |
17 | | #include "gdal.h" |
18 | | #include "cpl_json_header.h" |
19 | | #undef TRUE |
20 | 0 | #define TRUE 1 |
21 | | #undef FALSE |
22 | 0 | #define FALSE 0 |
23 | | #include "gdal_priv.h" |
24 | | #include "cpl_http.h" |
25 | | #include <vector> |
26 | | #include <map> |
27 | | |
28 | | CPLHTTPResult *EEDAHTTPFetch(const char *pszURL, CSLConstList papszOptions); |
29 | | |
30 | | /************************************************************************/ |
31 | | /* EEDAIBandDesc */ |
32 | | /************************************************************************/ |
33 | | |
34 | | class EEDAIBandDesc |
35 | | { |
36 | | public: |
37 | | CPLString osName{}; |
38 | | CPLString osWKT{}; |
39 | | GDALDataType eDT{GDT_Unknown}; |
40 | | GDALGeoTransform gt{}; |
41 | | int nWidth{0}; |
42 | | int nHeight{0}; |
43 | | |
44 | | /* Check if it similar enough for being considered as a compatible */ |
45 | | /* GDAL band in the same dataset */ |
46 | | bool IsSimilar(const EEDAIBandDesc &oOther) const |
47 | 0 | { |
48 | 0 | return osWKT == oOther.osWKT && gt == oOther.gt && |
49 | 0 | nWidth == oOther.nWidth && nHeight == oOther.nHeight; |
50 | 0 | } |
51 | | }; |
52 | | |
53 | | std::vector<EEDAIBandDesc> |
54 | | BuildBandDescArray(json_object *poBands, |
55 | | std::map<CPLString, CPLString> &oMapCodeToWKT); |
56 | | |
57 | | /************************************************************************/ |
58 | | /* GDALEEDABaseDataset */ |
59 | | /************************************************************************/ |
60 | | |
61 | | class GDALEEDABaseDataset CPL_NON_FINAL : public GDALDataset |
62 | | { |
63 | | protected: |
64 | | bool m_bMustCleanPersistent; |
65 | | CPLString m_osBaseURL{}; |
66 | | CPLString m_osBearer{}; |
67 | | GIntBig m_nExpirationTime; |
68 | | |
69 | | char **GetBaseHTTPOptions(); |
70 | | static CPLString ConvertPathToName(const CPLString &path); |
71 | | |
72 | | public: |
73 | | GDALEEDABaseDataset(); |
74 | | ~GDALEEDABaseDataset() override; |
75 | | |
76 | | const CPLString &GetBaseURL() const |
77 | 0 | { |
78 | 0 | return m_osBaseURL; |
79 | 0 | } |
80 | | }; |
81 | | |
82 | | #endif // EEDA_H_INCLUDED |