Skip to content

Commit

Permalink
Merge pull request #3172 from dmarteau/master
Browse files Browse the repository at this point in the history
Expose server interfaces methods to python for clearing server cache
  • Loading branch information
rldhont committed Jun 3, 2016
2 parents 04e1e96 + a4a0c9b commit 7abd691
Show file tree
Hide file tree
Showing 8 changed files with 56 additions and 1 deletion.
5 changes: 5 additions & 0 deletions python/server/qgsserverinterface.sip
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@ class QgsServerInterface
virtual QString configFilePath() = 0;
/** Set the config file path */
virtual void setConfigFilePath( const QString& configFilePath) = 0;
/** Remove entry from config cache */
virtual void removeConfigCacheEntry( const QString& path ) = 0;
/** Remove entry from layer cache */
virtual void removeProjectLayers( const QString& path ) = 0;


private:
/** Constructor */
Expand Down
7 changes: 7 additions & 0 deletions src/server/qgsconfigcache.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -207,3 +207,10 @@ void QgsConfigCache::removeChangedEntry( const QString& path )

mFileSystemWatcher.removePath( path );
}


void QgsConfigCache::removeEntry( const QString& path )
{
removeChangedEntry( path );
}

2 changes: 2 additions & 0 deletions src/server/qgsconfigcache.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ class SERVER_EXPORT QgsConfigCache : public QObject
, const QMap<QString, QString>& parameterMap = ( QMap< QString, QString >() )
);

void removeEntry( const QString& path );

private:
QgsConfigCache();

Expand Down
6 changes: 6 additions & 0 deletions src/server/qgsmslayercache.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -226,3 +226,9 @@ void QgsMSLayerCache::logCacheContents() const
QgsMessageLog::logMessage( "Url: " + it.value().url + " Layer name: " + it.value().layerPointer->name() + " Project: " + it.value().configFile, "Server", QgsMessageLog::INFO );
}
}


void QgsMSLayerCache::removeProjectLayers( const QString& path )
{
removeProjectFileLayers( path );
}
3 changes: 3 additions & 0 deletions src/server/qgsmslayercache.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ class QgsMSLayerCache: public QObject
//for debugging
void logCacheContents() const;

/** Expose method for use in server interface */
void removeProjectLayers( const QString& path );

protected:
/** Protected singleton constructor*/
QgsMSLayerCache();
Expand Down
15 changes: 15 additions & 0 deletions src/server/qgsserverinterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,21 @@ class SERVER_EXPORT QgsServerInterface
*/
virtual void setConfigFilePath( const QString& configFilePath ) = 0;

/**
* Remove entry from config cache
* @param path the path of the file to remove
*/
virtual void removeConfigCacheEntry( const QString& path ) = 0;

/**
* Remove entries from layer cache
* @param path the path of the project which own the layers to be removed
*/
virtual void removeProjectLayers( const QString& path ) = 0;




private:
QString mConfigFilePath;
};
Expand Down
17 changes: 16 additions & 1 deletion src/server/qgsserverinterfaceimpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@


#include "qgsserverinterfaceimpl.h"

#include "qgsconfigcache.h"
#include "qgsmslayercache.h"

/** Constructor */
QgsServerInterfaceImpl::QgsServerInterfaceImpl( QgsCapabilitiesCache* capCache )
Expand Down Expand Up @@ -72,3 +73,17 @@ void QgsServerInterfaceImpl::registerAccessControl( QgsAccessControlFilter* acce
{
mAccessControls->registerAccessControl( accessControl, priority );
}


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

void QgsServerInterfaceImpl::removeProjectLayers( const QString& path )
{
QgsMSLayerCache::instance()->removeProjectLayers( path );
}



2 changes: 2 additions & 0 deletions src/server/qgsserverinterfaceimpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ class QgsServerInterfaceImpl : public QgsServerInterface
QString configFilePath() override { return mConfigFilePath; }
void setConfigFilePath( const QString& configFilePath ) override;
void setFilters( QgsServerFiltersMap *filters ) override;
void removeConfigCacheEntry( const QString& path ) override;
void removeProjectLayers( const QString& path ) override;

private:

Expand Down

0 comments on commit 7abd691

Please sign in to comment.