Skip to content

Commit

Permalink
Merge pull request #7514 from rldhont/server-cache-manager
Browse files Browse the repository at this point in the history
[Server][Feature][needs-docs] Server cache manager and WMTS service
  • Loading branch information
rldhont committed Aug 28, 2018
2 parents 2810c92 + b3f9898 commit 65f4bf1
Show file tree
Hide file tree
Showing 69 changed files with 7,507 additions and 1,694 deletions.
133 changes: 133 additions & 0 deletions python/server/auto_generated/qgsservercachefilter.sip.in
@@ -0,0 +1,133 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/server/qgsservercachefilter.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/







class QgsServerCacheFilter
{
%Docstring
Class defining cache interface for QGIS Server plugins.

.. versionadded:: 3.4
%End

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

QgsServerCacheFilter( const QgsServerInterface *serverInterface );
%Docstring
Constructor
QgsServerInterface passed to plugins constructors
and must be passed to QgsServerCacheFilter instances.
%End

virtual ~QgsServerCacheFilter();

virtual QByteArray getCachedDocument( const QgsProject *project, const QgsServerRequest &request, const QString &key ) const;
%Docstring
Returns cached document (or 0 if document not in cache) like capabilities

:param project: the project used to generate the document to provide path
:param request: the request used to generate the document to provider parameters or data
:param key: the key provided by the access control to identify different documents for the same request

:return: QByteArray of the cached document or an empty one if no corresponding document found
%End

virtual bool setCachedDocument( const QDomDocument *doc, const QgsProject *project, const QgsServerRequest &request, const QString &key ) const;
%Docstring
Updates or inserts the document in cache like capabilities

:param doc: the document to cache
:param project: the project used to generate the document to provide path
:param request: the request used to generate the document to provider parameters or data
:param key: the key provided by the access control to identify different documents for the same request

:return: true if the document has been cached
%End

virtual bool deleteCachedDocument( const QgsProject *project, const QgsServerRequest &request, const QString &key ) const;
%Docstring
Deletes the cached document

:param project: the project used to generate the document to provide path
:param request: the request used to generate the document to provider parameters or data
:param key: the key provided by the access control to identify different documents for the same request

:return: true if the document has been deleted
%End

virtual bool deleteCachedDocuments( const QgsProject *project ) const;
%Docstring
Deletes all cached documents for a QGIS project

:param project: the project used to generate the documents to provide path

:return: true if the documents have been deleted
%End

virtual QByteArray getCachedImage( const QgsProject *project, const QgsServerRequest &request, const QString &key ) const;
%Docstring
Returns cached image (or 0 if document not in cache) like tiles

:param project: the project used to generate the image to provide path
:param request: the request used to generate the image to provider parameters or data
:param key: the key provided by the access control to identify different images for the same request

:return: QByteArray of the cached image or an empty one if no corresponding image found
%End

virtual bool setCachedImage( const QByteArray *img, const QgsProject *project, const QgsServerRequest &request, const QString &key ) const;
%Docstring
Updates or inserts the image in cache like tiles

:param img: the document to cache
:param project: the project used to generate the image to provide path
:param request: the request used to generate the image to provider parameters or data
:param key: the key provided by the access control to identify different images for the same request

:return: true if the image has been cached
%End

virtual bool deleteCachedImage( const QgsProject *project, const QgsServerRequest &request, const QString &key ) const;
%Docstring
Deletes the cached image

:param project: the project used to generate the image to provide path
:param request: the request used to generate the image to provider parameters or data
:param key: the key provided by the access control to identify different images for the same request

:return: true if the image has been deleted
%End

virtual bool deleteCachedImages( const QgsProject *project ) const;
%Docstring
Deletes all cached images for a QGIS project

:param project: the project used to generate the images to provide path

:return: true if the images have been deleted
%End

};

typedef QMultiMap<int, QgsServerCacheFilter *> QgsServerCacheFilterMap;

/************************************************************************
* This file has been generated automatically from *
* *
* src/server/qgsservercachefilter.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
143 changes: 143 additions & 0 deletions python/server/auto_generated/qgsservercachemanager.sip.in
@@ -0,0 +1,143 @@
/************************************************************************
* This file has been generated automatically from *
* *
* src/server/qgsservercachemanager.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/






class QgsServerCacheManager
{
%Docstring
A helper class that centralizes caches accesses given by all the server cache filter plugins.

.. versionadded:: 3.4
%End

%TypeHeaderCode
#include "qgsservercachemanager.h"
#include "qgsservercachefilter.h"
%End
public:
QgsServerCacheManager();
%Docstring
Constructor
%End

QgsServerCacheManager( const QgsServerCacheManager &copy );
%Docstring
Copy constructor
%End


~QgsServerCacheManager();

bool getCachedDocument( QDomDocument *doc, const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl ) const;
%Docstring
Returns cached document (or 0 if document not in cache) like capabilities

:param doc: the document to update by content found in cache
:param project: the project used to generate the document to provide path
:param request: the request used to generate the document to provider parameters or data
:param accessControl: the access control to identify different documents for the same request provided by server interface

:return: true if the document has been found in cache and the document's content set
%End

bool setCachedDocument( const QDomDocument *doc, const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl ) const;
%Docstring
Updates or inserts the document in cache like capabilities

:param doc: the document to cache
:param project: the project used to generate the document to provide path
:param request: the request used to generate the document to provider parameters or data
:param accessControl: the access control to identify different documents for the same request provided by server interface

:return: true if the document has been cached
%End

bool deleteCachedDocument( const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl ) const;
%Docstring
Deletes the cached document

:param project: the project used to generate the document to provide path
:param request: the request used to generate the document to provider parameters or data
:param accessControl: the access control to identify different documents for the same request provided by server interface

:return: true if the document has been deleted
%End

bool deleteCachedDocuments( const QgsProject *project ) const;
%Docstring
Deletes all cached documents for a QGIS project

:param project: the project used to generate the document to provide path

:return: true if the document has been deleted
%End

QByteArray getCachedImage( const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl ) const;
%Docstring
Returns cached image (or 0 if image not in cache) like tiles

:param project: the project used to generate the image to provide path
:param request: the request used to generate the image to provider parameters or data
:param accessControl: the access control to identify different documents for the same request provided by server interface

:return: the cached image or 0 if no corresponding image found
%End

bool setCachedImage( const QByteArray *img, const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl ) const;
%Docstring
Updates or inserts the image in cache like tiles

:param img: the image to cache
:param project: the project used to generate the image to provide path
:param request: the request used to generate the image to provider parameters or data
:param accessControl: the access control to identify different documents for the same request provided by server interface

:return: true if the image has been cached
%End

bool deleteCachedImage( const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl ) const;
%Docstring
Deletes the cached image

:param project: the project used to generate the image to provide path
:param request: the request used to generate the image to provider parameters or data
:param accessControl: the access control to identify different documents for the same request provided by server interface

:return: true if the image has been deleted
%End

bool deleteCachedImages( const QgsProject *project ) const;
%Docstring
Deletes all cached images for a QGIS project

:param project: the project used to generate the images to provide path

:return: true if the images have been deleted
%End

void registerServerCache( QgsServerCacheFilter *serverCache, int priority = 0 );
%Docstring
Register a server cache filter

:param serverCache: the server cache to add
:param priority: the priority used to define the order
%End

};

/************************************************************************
* This file has been generated automatically from *
* *
* src/server/qgsservercachemanager.h *
* *
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
************************************************************************/
17 changes: 17 additions & 0 deletions python/server/auto_generated/qgsserverinterface.sip.in
Expand Up @@ -83,6 +83,23 @@ Register an access control filter
virtual QgsAccessControl *accessControls() const = 0;
%Docstring
Gets the registered access control filters
%End

virtual void registerServerCache( QgsServerCacheFilter *serverCache /Transfer/, int priority = 0 ) = 0;
%Docstring
Register a server cache filter

:param serverCache: the server cache to register
:param priority: the priority used to order them

.. versionadded:: 3.4
%End

virtual QgsServerCacheManager *cacheManager() const = 0;
%Docstring
Gets the registered server cache filters

.. versionadded:: 3.4
%End

virtual QString getEnv( const QString &name ) const = 0;
Expand Down
11 changes: 11 additions & 0 deletions python/server/auto_generated/qgsserverprojectutils.sip.in
Expand Up @@ -413,6 +413,17 @@ Returns the Layer ids list defined in a QGIS project as published in WCS.
:param project: the QGIS project

:return: the Layer ids list.
%End

QString wmtsServiceUrl( const QgsProject &project );
%Docstring
Returns the WMTS service url defined in a QGIS project.

:param project: the QGIS project

:return: url if defined in project, an empty string otherwise.

.. versionadded:: 3.4
%End
};

Expand Down
6 changes: 6 additions & 0 deletions python/server/server_auto.sip
Expand Up @@ -29,3 +29,9 @@
%If ( HAVE_SERVER_PYTHON_PLUGINS )
%Include auto_generated/qgsaccesscontrol.sip
%End
%If ( HAVE_SERVER_PYTHON_PLUGINS )
%Include auto_generated/qgsservercachefilter.sip
%End
%If ( HAVE_SERVER_PYTHON_PLUGINS )
%Include auto_generated/qgsservercachemanager.sip
%End

0 comments on commit 65f4bf1

Please sign in to comment.