LCOV - code coverage report
Current view: top level - frmts/eeda - eeda.h (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 4 4 100.0 %
Date: 2024-11-21 22:18:42 Functions: 1 1 100.0 %

          Line data    Source code
       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             : #define TRUE 1
      21             : #undef FALSE
      22             : #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, char **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             :     std::vector<double> adfGeoTransform{0.0, 1.0, 0.0, 0.0, 0.0, 1.0};
      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          25 :     bool IsSimilar(const EEDAIBandDesc &oOther) const
      47             :     {
      48          25 :         return osWKT == oOther.osWKT &&
      49          25 :                adfGeoTransform == oOther.adfGeoTransform &&
      50          50 :                nWidth == oOther.nWidth && nHeight == oOther.nHeight;
      51             :     }
      52             : };
      53             : 
      54             : std::vector<EEDAIBandDesc>
      55             : BuildBandDescArray(json_object *poBands,
      56             :                    std::map<CPLString, CPLString> &oMapCodeToWKT);
      57             : 
      58             : /************************************************************************/
      59             : /*                      GDALEEDABaseDataset                             */
      60             : /************************************************************************/
      61             : 
      62             : class GDALEEDABaseDataset CPL_NON_FINAL : public GDALDataset
      63             : {
      64             :   protected:
      65             :     bool m_bMustCleanPersistent;
      66             :     CPLString m_osBaseURL{};
      67             :     CPLString m_osBearer{};
      68             :     GIntBig m_nExpirationTime;
      69             : 
      70             :     char **GetBaseHTTPOptions();
      71             :     static CPLString ConvertPathToName(const CPLString &path);
      72             : 
      73             :   public:
      74             :     GDALEEDABaseDataset();
      75             :     virtual ~GDALEEDABaseDataset();
      76             : 
      77             :     const CPLString &GetBaseURL() const
      78             :     {
      79             :         return m_osBaseURL;
      80             :     }
      81             : };
      82             : 
      83             : #endif  //  EEDA_H_INCLUDED

Generated by: LCOV version 1.14