Skip to content

Commit

Permalink
Flush capabilities cache when flushing project layers
Browse files Browse the repository at this point in the history
Made by @dmarteau
  • Loading branch information
rldhont committed Jun 28, 2016
1 parent bf53e4c commit 7dcb9cc
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/server/qgscapabilitiescache.cpp
Expand Up @@ -61,6 +61,12 @@ void QgsCapabilitiesCache::insertCapabilitiesDocument( const QString& configFile
mCachedCapabilities[ configFilePath ].insert( key, doc->cloneNode().toDocument() );
}

void QgsCapabilitiesCache::removeCapabilitiesDocument( const QString& path )
{
mCachedCapabilities.remove( path );
mFileSystemWatcher.removePath( path );
}

void QgsCapabilitiesCache::removeChangedEntry( const QString& path )
{
QgsDebugMsg( "Remove capabilities cache entry because file changed" );
Expand Down
5 changes: 5 additions & 0 deletions src/server/qgscapabilitiescache.h
Expand Up @@ -44,6 +44,11 @@ class SERVER_EXPORT QgsCapabilitiesCache : public QObject
*/
void insertCapabilitiesDocument( const QString& configFilePath, const QString& key, const QDomDocument* doc );

/** Remove capabilities document
* @param configFilePath the project file path
*/
void removeCapabilitiesDocument( const QString& path );

private:
QHash< QString, QHash< QString, QDomDocument > > mCachedCapabilities;
QFileSystemWatcher mFileSystemWatcher;
Expand Down
4 changes: 4 additions & 0 deletions src/server/qgsserverinterfaceimpl.cpp
Expand Up @@ -77,6 +77,10 @@ void QgsServerInterfaceImpl::registerAccessControl( QgsAccessControlFilter* acce

void QgsServerInterfaceImpl::removeConfigCacheEntry( const QString& path )
{
if( mCapabilitiesCache )
{
mCapabilitiesCache->removeCapabilitiesDocument( path );
}
QgsConfigCache::instance()->removeEntry( path );
}

Expand Down

0 comments on commit 7dcb9cc

Please sign in to comment.