QGIS API Documentation 3.99.0-Master (a8f284845db)
Loading...
Searching...
No Matches
qgsfilterresponsedecorator.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsfilterresponsedecorator.cpp
3
4 Define response wrapper for fcgi response
5 -------------------
6 begin : 2017-01-03
7 copyright : (C) 2017 by David Marteau
8 email : david dot marteau at 3liz dot com
9 ***************************************************************************/
10
11/***************************************************************************
12 * *
13 * This program is free software; you can redistribute it and/or modify *
14 * it under the terms of the GNU General Public License as published by *
15 * the Free Software Foundation; either version 2 of the License, or *
16 * (at your option) any later version. *
17 * *
18 ***************************************************************************/
19
20#include "qgsconfig.h"
22
24 : mFilters( filters )
25 , mResponse( response )
26{
27}
28
30{
31 QgsServerFiltersMap::const_iterator filtersIterator;
32 for ( filtersIterator = mFilters.constBegin(); filtersIterator != mFilters.constEnd(); ++filtersIterator )
33 {
34 if ( !filtersIterator.value()->onRequestReady() )
35 {
36 // stop propagation
37 return;
38 }
39 }
40}
41
43{
44 QgsServerFiltersMap::const_iterator filtersIterator;
45 for ( filtersIterator = mFilters.constBegin(); filtersIterator != mFilters.constEnd(); ++filtersIterator )
46 {
47 if ( !filtersIterator.value()->onProjectReady() )
48 {
49 // stop propagation
50 return;
51 }
52 }
53}
54
56{
57 QgsServerFiltersMap::const_iterator filtersIterator;
58 for ( filtersIterator = mFilters.constBegin(); filtersIterator != mFilters.constEnd(); ++filtersIterator )
59 {
60 if ( !filtersIterator.value()->onResponseComplete() )
61 {
62 // stop propagation, 'finish' must be called on the wrapped
63 // response
64 break;
65 }
66 }
67 // Will call internal 'flush'
68 mResponse.finish();
69}
70
71
73{
74 QgsServerFiltersMap::const_iterator filtersIterator;
75
76 for ( filtersIterator = mFilters.constBegin(); filtersIterator != mFilters.constEnd(); ++filtersIterator )
77 {
78 if ( !filtersIterator.value()->onSendResponse() )
79 {
80 // Stop propagation
81 return;
82 }
83 }
84 mResponse.flush();
85}
void flush() override
Flushes the current output buffer to the network.
void start()
Call filters requestReady() method.
void finish() override
Finish the response, ending the transaction.
QgsFilterResponseDecorator(QgsServerFiltersMap filters, QgsServerResponse &response)
Constructor for QgsFilterResponseDecorator.
void ready()
Call filters projectReady() method.
QgsServerResponse()=default
QMultiMap< int, QgsServerFilter * > QgsServerFiltersMap