LCOV - code coverage report
Current view: top level - frmts/wms - gdalhttp.h (source / functions) Hit Total Coverage
Test: gdal_filtered.info Lines: 1 1 100.0 %
Date: 2025-06-28 21:28:23 Functions: 1 1 100.0 %

          Line data    Source code
       1             : /*****************************************************************************
       2             :  *
       3             :  * Project:  WMS Client Driver
       4             :  * Purpose:  Implementation of Dataset and RasterBand classes for WMS
       5             :  *           and other similar services.
       6             :  * Author:   Adam Nowacki, nowak@xpam.de
       7             :  *
       8             :  ******************************************************************************
       9             :  * Copyright (c) 2007, Adam Nowacki
      10             :  *
      11             :  * SPDX-License-Identifier: MIT
      12             :  ****************************************************************************/
      13             : 
      14             : #ifndef GDALHTTP_H
      15             : #define GDALHTTP_H
      16             : 
      17             : #include "cpl_port.h"
      18             : #include "cpl_http.h"
      19             : 
      20             : struct WMSHTTPRequest
      21             : {
      22          59 :     WMSHTTPRequest() = default;
      23             : 
      24             :     ~WMSHTTPRequest();
      25             :     WMSHTTPRequest(const WMSHTTPRequest &) = delete;
      26             :     WMSHTTPRequest &operator=(const WMSHTTPRequest &) = delete;
      27             :     WMSHTTPRequest(WMSHTTPRequest &&) = delete;
      28             :     WMSHTTPRequest &operator=(WMSHTTPRequest &&) = delete;
      29             : 
      30             :     /* Input */
      31             :     CPLString URL{};
      32             :     // Not owned, do not release
      33             :     const char *const *options{nullptr};
      34             :     CPLString Range{};
      35             : 
      36             :     /* Output */
      37             :     CPLString ContentType{};
      38             :     CPLString Error{};
      39             : 
      40             :     int nStatus =
      41             :         0; /* 200 = success, 404 = not found, 0 = no response / error */
      42             :     GByte *pabyData{nullptr};
      43             :     size_t nDataLen{};
      44             :     size_t nDataAlloc{};
      45             : 
      46             :     /* curl internal stuff */
      47             :     CURL *m_curl_handle{nullptr};
      48             :     struct curl_slist *m_headers{nullptr};
      49             :     // Which tile is being requested
      50             :     int x{}, y{};
      51             : 
      52             :     // Space for error message, doesn't seem to be used by the multi-request
      53             :     // interface
      54             :     std::vector<char> m_curl_error{};
      55             : };
      56             : 
      57             : // Not public, only for use within WMS
      58             : void WMSHTTPInitializeRequest(WMSHTTPRequest *psRequest);
      59             : CPLErr WMSHTTPFetchMulti(WMSHTTPRequest *psRequest, int nRequestCount = 1);
      60             : 
      61             : #endif /*  GDALHTTP_H */

Generated by: LCOV version 1.14