/** * Output WCS GetCapabilities response */ void writeGetCapabilities( QgsServerInterface *serverIface, const QgsProject *project, const QString &version, const QgsServerRequest &request, QgsServerResponse &response ) { #ifdef HAVE_SERVER_PYTHON_PLUGINS QgsAccessControl *accessControl = serverIface->accessControls(); #endif QDomDocument doc; const QDomDocument *capabilitiesDocument = nullptr; #ifdef HAVE_SERVER_PYTHON_PLUGINS QgsServerCacheManager *cacheManager = serverIface->cacheManager(); if ( cacheManager && cacheManager->getCachedDocument( &doc, project, request, accessControl ) ) { capabilitiesDocument = &doc; } else //capabilities xml not in cache. Create a new one { doc = createGetCapabilitiesDocument( serverIface, project, version, request ); if ( cacheManager ) { cacheManager->setCachedDocument( &doc, project, request, accessControl ); } capabilitiesDocument = &doc; } #else doc = createGetCapabilitiesDocument( serverIface, project, version, request ); #endif response.setHeader( QStringLiteral( "Content-Type" ), QStringLiteral( "text/xml; charset=utf-8" ) ); response.write( capabilitiesDocument->toByteArray() ); }
/** * Output WCS DescribeCoverage response */ void writeDescribeCoverage( QgsServerInterface *serverIface, const QgsProject *project, const QString &version, const QgsServerRequest &request, QgsServerResponse &response ) { QgsAccessControl *accessControl = nullptr; #ifdef HAVE_SERVER_PYTHON_PLUGINS accessControl = serverIface->accessControls(); #endif QDomDocument doc; const QDomDocument *describeDocument = nullptr; QgsServerCacheManager *cacheManager = nullptr; #ifdef HAVE_SERVER_PYTHON_PLUGINS cacheManager = serverIface->cacheManager(); #endif if ( cacheManager && cacheManager->getCachedDocument( &doc, project, request, accessControl ) ) { describeDocument = &doc; } else //describe feature xml not in cache. Create a new one { doc = createDescribeCoverageDocument( serverIface, project, version, request ); if ( cacheManager ) { cacheManager->setCachedDocument( &doc, project, request, accessControl ); } describeDocument = &doc; } response.setHeader( "Content-Type", "text/xml; charset=utf-8" ); response.write( describeDocument->toByteArray() ); }