28 : mSettings( settings )
30 mPluginsServerCaches = std::make_unique<QgsServerCacheFilterMap>();
34 : mSettings( copy.mSettings )
36 if ( copy.mPluginsServerCaches )
38 mPluginsServerCaches = std::make_unique<QgsServerCacheFilterMap>( *copy.mPluginsServerCaches );
42 mPluginsServerCaches.reset( nullptr );
48 if ( copy.mPluginsServerCaches )
50 mPluginsServerCaches = std::make_unique<QgsServerCacheFilterMap>( *copy.mPluginsServerCaches );
54 mPluginsServerCaches.reset(
nullptr );
61 mPluginsServerCaches.reset();
67 const QString key = getCacheKey( cache, accessControl, request );
75 QgsServerCacheFilterMap::const_iterator scIterator;
76 for ( scIterator = mPluginsServerCaches->constBegin(); scIterator != mPluginsServerCaches->constEnd(); ++scIterator )
78 content = scIterator.value()->getCachedDocument( project, request, key );
79 if ( !content.isEmpty() )
84 if ( content.isEmpty() )
89 if ( !doc->setContent( content ) )
100 const QString key = getCacheKey( cache, accessControl, request );
107 QgsServerCacheFilterMap::const_iterator scIterator;
108 for ( scIterator = mPluginsServerCaches->constBegin(); scIterator != mPluginsServerCaches->constEnd(); ++scIterator )
110 if ( scIterator.value()->setCachedDocument( doc, project, request, key ) )
121 const QString key = getCacheKey( cache, accessControl, request );
123 QgsServerCacheFilterMap::const_iterator scIterator;
124 for ( scIterator = mPluginsServerCaches->constBegin(); scIterator != mPluginsServerCaches->constEnd(); ++scIterator )
126 if ( scIterator.value()->deleteCachedDocument( project, request, key ) )
136 QgsServerCacheFilterMap::const_iterator scIterator;
137 for ( scIterator = mPluginsServerCaches->constBegin(); scIterator != mPluginsServerCaches->constEnd(); ++scIterator )
139 if ( scIterator.value()->deleteCachedDocuments( project ) )
150 const QString key = getCacheKey( cache, accessControl, request );
152 QgsServerCacheFilterMap::const_iterator scIterator;
153 for ( scIterator = mPluginsServerCaches->constBegin(); scIterator != mPluginsServerCaches->constEnd(); ++scIterator )
155 QByteArray content = scIterator.value()->getCachedImage( project, request, key );
156 if ( !content.isEmpty() )
167 const QString key = getCacheKey( cache, accessControl, request );
169 QgsServerCacheFilterMap::const_iterator scIterator;
170 for ( scIterator = mPluginsServerCaches->constBegin(); scIterator != mPluginsServerCaches->constEnd(); ++scIterator )
172 if ( scIterator.value()->setCachedImage( img, project, request, key ) )
183 const QString key = getCacheKey( cache, accessControl, request );
185 QgsServerCacheFilterMap::const_iterator scIterator;
186 for ( scIterator = mPluginsServerCaches->constBegin(); scIterator != mPluginsServerCaches->constEnd(); ++scIterator )
188 if ( scIterator.value()->deleteCachedImage( project, request, key ) )
198 QgsServerCacheFilterMap::const_iterator scIterator;
199 for ( scIterator = mPluginsServerCaches->constBegin(); scIterator != mPluginsServerCaches->constEnd(); ++scIterator )
201 if ( scIterator.value()->deleteCachedImages( project ) )
211 mPluginsServerCaches->insert( priority, serverCache );
216 QStringList cacheKeyList;
226 return cacheKeyList.join(
'-' );
A helper class that centralizes restrictions given by all the access control filter plugins.
bool fillCacheKey(QStringList &cacheKey) const
Fill the capabilities caching key.
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
Defines cache interface for QGIS Server plugins.
void registerServerCache(QgsServerCacheFilter *serverCache, int priority=0)
Register a server cache filter.
bool deleteCachedDocuments(const QgsProject *project) const
Deletes all cached documents for a QGIS project.
QgsServerCacheManager & operator=(const QgsServerCacheManager ©)
bool deleteCachedImages(const QgsProject *project) const
Deletes all cached images for a QGIS project.
bool deleteCachedDocument(const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl) const
Deletes the cached document.
bool setCachedDocument(const QDomDocument *doc, const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl) const
Updates or inserts the document in cache like capabilities.
bool getCachedDocument(QDomDocument *doc, const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl) const
Returns cached document (or 0 if document not in cache) like capabilities.
bool setCachedImage(const QByteArray *img, const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl) const
Updates or inserts the image in cache like tiles.
bool deleteCachedImage(const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl) const
Deletes the cached image.
QgsServerCacheManager(const QgsServerSettings &settings=QgsServerSettings())
Constructor.
QByteArray getCachedImage(const QgsProject *project, const QgsServerRequest &request, QgsAccessControl *accessControl) const
Returns cached image (or 0 if image not in cache) like tiles.
QString service() const
Returns SERVICE parameter as a string or an empty string if not defined.
static QString serviceUrl(const QString &service, const QgsServerRequest &request, const QgsServerSettings &settings)
Returns the service url defined in the environment variable or with HTTP header.
Defines requests passed to QgsService classes.
QgsServerParameters serverParameters() const
Returns parameters.
Provides a way to retrieve settings by prioritizing according to environment variables,...