Skip to content
Permalink
Browse files
Merge pull request #4465 from boundlessgeo/server-plugins-api-refacto…
…ring2

[server] Server plugins API refactoring
  • Loading branch information
elpaso committed May 3, 2017
2 parents 3be20f8 + 569593b commit cdb947c8d57cddef3afdf9d61bb3daae5d4652a5
Showing with 745 additions and 435 deletions.
  1. +52 −0 python/server/qgsbufferserverrequest.sip
  2. +153 −0 python/server/qgsbufferserverresponse.sip
  3. +22 −10 python/server/qgsrequesthandler.sip
  4. +0 −146 python/server/qgsserver.sip
  5. +43 −6 python/server/qgsserverrequest.sip
  6. +3 −4 python/server/qgsserverresponse.sip
  7. +2 −0 python/server/server.sip
  8. +4 −4 src/server/qgsbufferserverrequest.cpp
  9. +6 −5 src/server/qgsbufferserverrequest.h
  10. +2 −7 src/server/qgsbufferserverresponse.cpp
  11. +71 −10 src/server/qgsbufferserverresponse.h
  12. +1 −6 src/server/qgsfcgiserverresponse.cpp
  13. +2 −2 src/server/qgsfcgiserverresponse.h
  14. +2 −2 src/server/qgsfilterresponsedecorator.h
  15. +29 −7 src/server/qgsrequesthandler.cpp
  16. +20 −8 src/server/qgsrequesthandler.h
  17. +1 −44 src/server/qgsserver.cpp
  18. +0 −11 src/server/qgsserver.h
  19. +24 −6 src/server/qgsserverrequest.cpp
  20. +34 −9 src/server/qgsserverrequest.h
  21. +4 −4 src/server/qgsserverresponse.h
  22. +1 −1 src/server/services/wfs/qgswfsdescribefeaturetype.cpp
  23. +2 −0 tests/src/python/CMakeLists.txt
  24. +20 −18 tests/src/python/qgis_wrapped_server.py
  25. +1 −1 tests/src/python/test_authmanager_password_ows.py
  26. +1 −1 tests/src/python/test_qgsfiledownloader.py
  27. +37 −13 tests/src/python/test_qgsserver.py
  28. +26 −9 tests/src/python/test_qgsserver_accesscontrol.py
  29. +9 −57 tests/src/python/test_qgsserver_plugins.py
  30. +66 −0 tests/src/python/test_qgsserver_request.py
  31. +65 −0 tests/src/python/test_qgsserver_response.py
  32. +5 −4 tests/src/python/test_qgsserver_security.py
  33. +37 −40 tests/src/python/test_qgsserver_wms.py
@@ -0,0 +1,52 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/server/qgsbufferserverrequest.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/




class QgsBufferServerRequest : QgsServerRequest
{
%Docstring
QgsBufferServerRequest
Class defining request with data
%End

%TypeHeaderCode
#include "qgsbufferserverrequest.h"
%End
public:

QgsBufferServerRequest( const QString &url, Method method = GetMethod, const QgsServerRequest::Headers &headers = QgsServerRequest::Headers( ), QByteArray *data = 0 );
%Docstring
Constructor

\param url the url string
\param method the request method
%End

QgsBufferServerRequest( const QUrl &url, Method method = GetMethod, const QgsServerRequest::Headers &headers = QgsServerRequest::Headers( ), QByteArray *data = 0 );
%Docstring
Constructor

\param url QUrl
\param method the request method
%End

~QgsBufferServerRequest();

virtual QByteArray data() const;

};

/************************************************************************
* This file has been generated automatically from *
* *
* src/server/qgsbufferserverrequest.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
@@ -0,0 +1,153 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/server/qgsbufferserverresponse.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/




class QgsBufferServerResponse: QgsServerResponse
{
%Docstring
Class defining buffered response
%End

%TypeHeaderCode
#include "qgsbufferserverresponse.h"
%End
public:

QgsBufferServerResponse();
~QgsBufferServerResponse();


virtual void setHeader( const QString &key, const QString &value );

%Docstring
Set Header entry
Add Header entry to the response
Note that it is usually an error to set Header after data have been sent through the wire
%End

virtual void removeHeader( const QString &key );

%Docstring
Clear header
Undo a previous 'setHeader' call
%End

virtual QString header( const QString &key ) const;

%Docstring
Return the header value
:rtype: str
%End

virtual QMap<QString, QString> headers() const;
%Docstring
Return all the headers
:rtype: QMap<str, QString>
%End

virtual bool headersSent() const;

%Docstring
Return true if the headers have alredy been sent
:rtype: bool
%End

virtual void setStatusCode( int code );

%Docstring
Set the http status code
\param code HTTP status code value
%End

virtual int statusCode( ) const;
%Docstring
Return the http status code
:rtype: int
%End

virtual void sendError( int code, const QString &message );

%Docstring
Send error
This method delegates error handling at the server level. This is different
from calling setReturnCode() which let you return a specific response body.
Calling sendError() will end the transaction and any attempt to write data
or set headers will be an error.
\param code HHTP return code value
\param message An informative error message
%End

virtual QIODevice *io();

%Docstring
Return the underlying QIODevice
:rtype: QIODevice
%End

virtual void finish();

%Docstring
Finish the response, ending the transaction
%End

virtual void flush();

%Docstring
Flushes the current output buffer to the network

'flush()' may be called multiple times. For HTTP transactions
headers will be written on the first call to 'flush()'.
%End

virtual void clear();

%Docstring
Reset all headers and content for this response
%End

virtual QByteArray data() const;

%Docstring
Get the data written so far

This is implementation dependent: some implementations may not
give access to the underlying and return an empty array.

Note that each call to 'flush' may empty the buffer and in case
of streaming process you may get partial content
:rtype: QByteArray
%End

virtual void truncate();

%Docstring
Truncate data

Clear internal buffer
%End

QByteArray body() const;
%Docstring
Return body
:rtype: QByteArray
%End


private:
QgsBufferServerResponse( const QgsBufferServerResponse & ) ;
};

/************************************************************************
* This file has been generated automatically from *
* *
* src/server/qgsbufferserverresponse.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
@@ -29,20 +29,29 @@ class QgsRequestHandler /Abstract/
/** Allow plugins to return a QgsServerException*/
void setServiceException( const QgsServerException &ex );

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

//! Retrieve header value
QString header( const QString &name ) const;
//! Remove an HTTP response header
void removeResponseHeader( const QString &name );

//! Return the list of all header keys
QList<QString> headerKeys() const;
//! Retrieve response header value
QString responseHeader( const QString &name ) const;

/** Remove an HTTP header*/
void removeHeader( const QString &name );
//! Return the response headers
QMap<QString, QString> responseHeaders() const;

/** Delete all HTTP headers*/
void clear();
//! Set an HTTP request header
void setRequestHeader( const QString &name, const QString &value );

//! Remove an HTTP request header
void removeRequestHeader( const QString &name );

//! Retrieve request header value
QString requestHeader( const QString &name ) const;

//! Return the Request headers
QMap<QString, QString> requestHeaders() const;

/** Append the bytestream to response body*/
void appendBody( const QByteArray &body );
@@ -62,6 +71,9 @@ class QgsRequestHandler /Abstract/
/** Clear response buffer */
void clearBody();

//! Clears the response body and headers
void clear();

/** Return body data */
QByteArray body() const;

0 comments on commit cdb947c

Please sign in to comment.