Skip to content
Permalink
Browse files
Move wcs as service module
  • Loading branch information
dmarteau committed Jan 17, 2017
1 parent 56b2f08 commit e17a7d4e217d70d4dd80b4a8bcb8dab514e1a2a7
Show file tree
Hide file tree
Showing 35 changed files with 1,026 additions and 886 deletions.
@@ -84,11 +84,16 @@ IF(WITH_APIDOC)
${DOXYGEN_INPUT}
${CMAKE_SOURCE_DIR}/src/server/qgsserver.h
${CMAKE_SOURCE_DIR}/src/server/qgscapabilitiescache.h
${CMAKE_SOURCE_DIR}/src/server/qgsmapserviceexception.h
${CMAKE_SOURCE_DIR}/src/server/qgsserverexception.h
${CMAKE_SOURCE_DIR}/src/server/qgsrequesthandler.h
${CMAKE_SOURCE_DIR}/src/server/qgsserverfilter.h
${CMAKE_SOURCE_DIR}/src/server/qgsaccesscontrolfilter.h
${CMAKE_SOURCE_DIR}/src/server/qgsserverinterface.h
${CMAKE_SOURCE_DIR}/src/server/qgsserverrequest.h
${CMAKE_SOURCE_DIR}/src/server/qgsserverresponse.h
${CMAKE_SOURCE_DIR}/src/server/qgsserverrequest.h
${CMAKE_SOURCE_DIR}/src/server/qgsservice.h
${CMAKE_SOURCE_DIR}/src/server/qgsserviceregistry.h
)
ENDIF(WITH_SERVER_PLUGINS)

@@ -1898,6 +1898,13 @@ optional property map passing down layer level properties to the SLD encoders. I
- usedAttributes is now a const method and returns QSet<QString> instead of QStringList


QgsRequestHandler {#qgis_api_break_3_0_QgsRequestHandler}
-----------------

- Removed infoFormat and setInfoFormat methods: the format of the response is given and set with the "Content-Type" header.
- Removed setCoverageResponse


Processing {#qgis_api_break_3_0_Processing}
----------

@@ -29,9 +29,6 @@ class QgsRequestHandler /Abstract/
/** Allow plugins to return a QgsServerException*/
void setServiceException( const QgsServerException& ex );

//! @note not available in Python bindings
void setGetCoverageResponse( QByteArray* ba );

/** Set an HTTP header*/
void setHeader( const QString &name, const QString &value );

@@ -50,9 +47,6 @@ class QgsRequestHandler /Abstract/
/** Append the bytestream to response body*/
void appendBody( const QByteArray &body );

/** Set the info format string such as "text/xml"*/
void setInfoFormat( const QString &format );

/** Send out HTTP headers and flush output buffer*/
void sendResponse();

@@ -77,9 +71,6 @@ class QgsRequestHandler /Abstract/
/** Return the requested format string*/
QString format() const;

/** Return the mime type for the response*/
QString infoFormat() const;

/** Return true if the HTTP headers were already sent to the client*/
bool headersSent() const;
};
@@ -47,6 +47,7 @@ class QgsOgcServiceException
QString message() const;
QString code() const;
QString locator() const;
QString version() const;

virtual QByteArray formatResponse( QString& responseFormat / Out / ) const;
};
@@ -79,6 +79,21 @@ class QgsServerRequest
*/
QMap<QString, QString> parameters() const;

/**
* Set a parameter
*/
void setParameter( const QString& key, const QString& value );

/**
* Get a parameter value
*/
QString getParameter( const QString& key ) const;

/**
* Remove a parameter
*/
void removeParameter( const QString& key );

/**
* Return post/put data
* Check for QByteArray::isNull() to check if data
@@ -24,8 +24,6 @@ SET ( qgis_mapserv_SRCS
qgscapabilitiescache.cpp
qgsconfigcache.cpp
qgsrequesthandler.cpp
qgsowsserver.cpp
qgswcsserver.cpp
qgsserversettings.cpp
qgsserverexception.cpp
qgsmslayercache.cpp

This file was deleted.

This file was deleted.

@@ -53,20 +53,6 @@ QMap<QString, QString> QgsRequestHandler::parameterMap() const
return mRequest.parameters();
}

void QgsRequestHandler::setHttpResponse( const QByteArray& ba, const QString &format )
{
QgsMessageLog::logMessage( QStringLiteral( "Checking byte array is ok to set..." ) );

if ( ba.size() < 1 )
{
return;
}

QgsMessageLog::logMessage( QStringLiteral( "Byte array looks good, setting response..." ) );
appendBody( ba );
setInfoFormat( format );
}

bool QgsRequestHandler::exceptionRaised() const
{
return mExceptionRaised;
@@ -107,70 +93,19 @@ void QgsRequestHandler::appendBody( const QByteArray &body )
mResponse.write( body );
}

void QgsRequestHandler::setInfoFormat( const QString &format )
{
mInfoFormat = format;

// Update header
QString fmt = mInfoFormat;
if ( mInfoFormat.startsWith( QLatin1String( "text/" ) ) || mInfoFormat.startsWith( QLatin1String( "application/vnd.ogc.gml" ) ) )
{
fmt.append( "; charset=utf-8" );
}
setHeader( QStringLiteral( "Content-Type" ), fmt );

}

void QgsRequestHandler::sendResponse()
{
// Send data to output
mResponse.flush();
}



QString QgsRequestHandler::formatToMimeType( const QString& format ) const
{
if ( format.compare( QLatin1String( "png" ), Qt::CaseInsensitive ) == 0 )
{
return QStringLiteral( "image/png" );
}
else if ( format.compare( QLatin1String( "jpg" ), Qt::CaseInsensitive ) == 0 )
{
return QStringLiteral( "image/jpeg" );
}
else if ( format.compare( QLatin1String( "svg" ), Qt::CaseInsensitive ) == 0 )
{
return QStringLiteral( "image/svg+xml" );
}
else if ( format.compare( QLatin1String( "pdf" ), Qt::CaseInsensitive ) == 0 )
{
return QStringLiteral( "application/pdf" );
}
return format;
}

void QgsRequestHandler::setGetCapabilitiesResponse( const QDomDocument& doc )
{
QByteArray ba = doc.toByteArray();
setHttpResponse( ba, QStringLiteral( "text/xml" ) );
}

void QgsRequestHandler::setServiceException( const QgsServerException& ex )
{
// Safety measure to avoid potential leaks if called repeatedly
mExceptionRaised = true;
mResponse.write( ex );
}

void QgsRequestHandler::setGetCoverageResponse( QByteArray* ba )
{
if ( ba )
{
setHttpResponse( *ba, QStringLiteral( "image/tiff" ) );
}
}

void QgsRequestHandler::setupParameters()
{
const QgsServerRequest::Parameters parameters = mRequest.parameters();

0 comments on commit e17a7d4

Please sign in to comment.