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 MINIDRIVER_WMS_H_INCLUDED 15 : #define MINIDRIVER_WMS_H_INCLUDED 16 : 17 : /* 18 : * Base class for a WMS minidriver. 19 : * At least Initialize() and one of the ImageRequest() or TiledImageRequest() 20 : * has to be provided All minidrivers are instantiated in wmsdriver.cpp, in 21 : * GDALRegister_WMS() 22 : */ 23 : 24 6 : class WMSMiniDriver_WMS : public WMSMiniDriver 25 : { 26 : public: 27 : WMSMiniDriver_WMS(); 28 : virtual ~WMSMiniDriver_WMS(); 29 : 30 : public: 31 : virtual CPLErr Initialize(CPLXMLNode *config, 32 : char **papszOpenOptions) override; 33 : virtual void GetCapabilities(WMSMiniDriverCapabilities *caps) override; 34 : 35 : // Return error message in request.Error 36 : virtual CPLErr 37 : TiledImageRequest(WMSHTTPRequest &request, 38 : const GDALWMSImageRequestInfo &iri, 39 : const GDALWMSTiledImageRequestInfo &tiri) override; 40 : 41 : virtual void GetTiledImageInfo(CPLString &url, 42 : const GDALWMSImageRequestInfo &iri, 43 : const GDALWMSTiledImageRequestInfo &tiri, 44 : int nXInBlock, int nYInBlock) override; 45 : 46 : protected: 47 : void BuildURL(CPLString &url, const GDALWMSImageRequestInfo &iri, 48 : const char *pszRequest); 49 : 50 : protected: 51 : CPLString m_version{}; 52 : int m_iversion{}; 53 : CPLString m_layers{}; 54 : CPLString m_styles{}; 55 : CPLString m_srs{}; 56 : CPLString m_crs{}; 57 : CPLString m_image_format{}; 58 : CPLString m_info_format{}; 59 : CPLString m_bbox_order{}; 60 : CPLString m_transparent{}; 61 : }; 62 : 63 : #endif /* MINIDRIVER_WMS_H_INCLUDED */