QGIS API Documentation 4.1.0-Master (5bf3c20f3c9)
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
29{
30 QgsServerFiltersMap::const_iterator filtersIterator;
31 for ( filtersIterator = mFilters.constBegin(); filtersIterator != mFilters.constEnd(); ++filtersIterator )
32 {
33 if ( !filtersIterator.value()->onRequestReady() )
34 {
35 // stop propagation
36 return;
37 }
38 }
39}
40
42{
43 QgsServerFiltersMap::const_iterator filtersIterator;
44 for ( filtersIterator = mFilters.constBegin(); filtersIterator != mFilters.constEnd(); ++filtersIterator )
45 {
46 if ( !filtersIterator.value()->onProjectReady() )
47 {
48 // stop propagation
49 return;
50 }
51 }
52}
53
55{
56 QgsServerFiltersMap::const_iterator filtersIterator;
57 for ( filtersIterator = mFilters.constBegin(); filtersIterator != mFilters.constEnd(); ++filtersIterator )
58 {
59 if ( !filtersIterator.value()->onResponseComplete() )
60 {
61 // stop propagation, 'finish' must be called on the wrapped
62 // response
63 break;
64 }
65 }
66 // Will call internal 'flush'
67 mResponse.finish();
68}
69
70
72{
73 QgsServerFiltersMap::const_iterator filtersIterator;
74
75 for ( filtersIterator = mFilters.constBegin(); filtersIterator != mFilters.constEnd(); ++filtersIterator )
76 {
77 if ( !filtersIterator.value()->onSendResponse() )
78 {
79 // Stop propagation
80 return;
81 }
82 }
83 mResponse.flush();
84}
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