mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-17 00:04:02 -04:00
Clear the request handler when done
also added some comments and docs strings
This commit is contained in:
parent
368eaa258b
commit
c126592272
@ -61,7 +61,7 @@ class QgsRequestHandler
|
|||||||
/**Remove a request parameter*/
|
/**Remove a request parameter*/
|
||||||
virtual int removeParameter( const QString &key ) = 0;
|
virtual int removeParameter( const QString &key ) = 0;
|
||||||
/**Return a request parameter*/
|
/**Return a request parameter*/
|
||||||
virtual QString parameter( const QString &key ) const = 0;
|
virtual QString parameter( const QString &key) const = 0;
|
||||||
/**Return the requested format string*/
|
/**Return the requested format string*/
|
||||||
QString format() const;
|
QString format() const;
|
||||||
/**Return the mime type for the response*/
|
/**Return the mime type for the response*/
|
||||||
|
@ -590,6 +590,9 @@ QByteArray QgsServer::handleRequest( const QString queryString ,
|
|||||||
{
|
{
|
||||||
filtersIterator.value()->responseComplete();
|
filtersIterator.value()->responseComplete();
|
||||||
}
|
}
|
||||||
|
// We are done using theRequestHandler in plugins, make sure we don't access
|
||||||
|
// to a deleted request handler from Python bindings
|
||||||
|
mServerInterface->clearRequestHandler( );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
theRequestHandler->sendResponse();
|
theRequestHandler->sendResponse();
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
QgsServerInterface::QgsServerInterface():
|
QgsServerInterface::QgsServerInterface():
|
||||||
mConfigFilePath( QString() )
|
mConfigFilePath( QString() )
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QgsServerInterface::~QgsServerInterface()
|
QgsServerInterface::~QgsServerInterface()
|
||||||
|
@ -47,6 +47,13 @@ class SERVER_EXPORT QgsServerInterface
|
|||||||
*/
|
*/
|
||||||
virtual void setRequestHandler( QgsRequestHandler* requestHandler ) = 0;
|
virtual void setRequestHandler( QgsRequestHandler* requestHandler ) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Clear the request handler
|
||||||
|
*
|
||||||
|
* @note not available in python bindings
|
||||||
|
*/
|
||||||
|
virtual void clearRequestHandler( ) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get pointer to the capabiblities cache
|
* Get pointer to the capabiblities cache
|
||||||
* @return QgsCapabilitiesCache
|
* @return QgsCapabilitiesCache
|
||||||
|
@ -38,6 +38,12 @@ QgsServerInterfaceImpl::~QgsServerInterfaceImpl()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void QgsServerInterfaceImpl::clearRequestHandler( )
|
||||||
|
{
|
||||||
|
mRequestHandler = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void QgsServerInterfaceImpl::setRequestHandler( QgsRequestHandler * requestHandler )
|
void QgsServerInterfaceImpl::setRequestHandler( QgsRequestHandler * requestHandler )
|
||||||
{
|
{
|
||||||
mRequestHandler = requestHandler;
|
mRequestHandler = requestHandler;
|
||||||
|
@ -45,7 +45,9 @@ class QgsServerInterfaceImpl : public QgsServerInterface
|
|||||||
~QgsServerInterfaceImpl();
|
~QgsServerInterfaceImpl();
|
||||||
|
|
||||||
void setRequestHandler( QgsRequestHandler* requestHandler ) override;
|
void setRequestHandler( QgsRequestHandler* requestHandler ) override;
|
||||||
|
void clearRequestHandler( ) override;
|
||||||
QgsCapabilitiesCache* capabiblitiesCache() override { return mCapabilitiesCache; }
|
QgsCapabilitiesCache* capabiblitiesCache() override { return mCapabilitiesCache; }
|
||||||
|
//! Return the QgsRequestHandler, to be used only in server plugins
|
||||||
QgsRequestHandler* requestHandler( ) override { return mRequestHandler; }
|
QgsRequestHandler* requestHandler( ) override { return mRequestHandler; }
|
||||||
void registerFilter( QgsServerFilter *filter, int priority = 0 ) override;
|
void registerFilter( QgsServerFilter *filter, int priority = 0 ) override;
|
||||||
QgsServerFiltersMap filters( ) override { return mFilters; }
|
QgsServerFiltersMap filters( ) override { return mFilters; }
|
||||||
|
@ -104,7 +104,8 @@ class TestQgsServer(unittest.TestCase):
|
|||||||
## WMS tests
|
## WMS tests
|
||||||
def wms_request_compare(self, request):
|
def wms_request_compare(self, request):
|
||||||
map = self.testdata_path + "testproject.qgs"
|
map = self.testdata_path + "testproject.qgs"
|
||||||
response = str(self.server.handleRequest('MAP=%s&SERVICE=WMS&VERSION=1.3&REQUEST=%s' % (map, request)))
|
query_string = 'MAP=%s&SERVICE=WMS&VERSION=1.3&REQUEST=%s' % (map, request)
|
||||||
|
response = str(self.server.handleRequest(query_string))
|
||||||
f = open(self.testdata_path + request.lower() + '.txt')
|
f = open(self.testdata_path + request.lower() + '.txt')
|
||||||
expected = f.read()
|
expected = f.read()
|
||||||
f.close()
|
f.close()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user