Skip to content

Commit 0e113e1

Browse files
committedMar 24, 2014
Add QgsOWSServer class, move code from qgis_map_serv.cpp into exection() functions
1 parent dcda258 commit 0e113e1

File tree

8 files changed

+567
-583
lines changed

8 files changed

+567
-583
lines changed
 

‎src/mapserver/qgis_map_serv.cpp

Lines changed: 8 additions & 435 deletions
Large diffs are not rendered by default.

‎src/mapserver/qgsowsserver.h

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/***************************************************************************
2+
qgsowsserver.h
3+
--------------
4+
begin : March 24, 2014
5+
copyright : (C) 2006 by Marco Hugentobler
6+
email : marco dot hugentobler at sourcepole dot ch
7+
***************************************************************************/
8+
9+
/***************************************************************************
10+
* *
11+
* This program is free software; you can redistribute it and/or modify *
12+
* it under the terms of the GNU General Public License as published by *
13+
* the Free Software Foundation; either version 2 of the License, or *
14+
* (at your option) any later version. *
15+
* *
16+
***************************************************************************/
17+
18+
#ifndef QGSOWSSERVER_H
19+
#define QGSOWSSERVER_H
20+
21+
#include "qgsconfigparser.h"
22+
#include "qgsrequesthandler.h"
23+
24+
class QgsOWSServer
25+
{
26+
public:
27+
QgsOWSServer( const QString& configFilePath, const QMap<QString, QString>& parameters, QgsConfigParser* cp, QgsRequestHandler* rh ):
28+
mParameters( parameters ), mConfigParser( cp ), mRequestHandler( rh ), mConfigFilePath( configFilePath ) {}
29+
virtual ~QgsOWSServer() { delete mRequestHandler; }
30+
31+
virtual void executeRequest() = 0;
32+
33+
private:
34+
QgsOWSServer() {}
35+
36+
protected:
37+
QMap<QString, QString> mParameters;
38+
QgsConfigParser* mConfigParser;
39+
QgsRequestHandler* mRequestHandler;
40+
QString mConfigFilePath;
41+
};
42+
43+
#endif // QGSOWSSERVER_H

‎src/mapserver/qgswcsserver.cpp

Lines changed: 81 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,83 @@ static const QString WCS_NAMESPACE = "http://www.opengis.net/wcs";
3636
static const QString GML_NAMESPACE = "http://www.opengis.net/gml";
3737
static const QString OGC_NAMESPACE = "http://www.opengis.net/ogc";
3838

39-
QgsWCSServer::QgsWCSServer( QMap<QString, QString> parameters )
40-
: mParameterMap( parameters )
41-
, mConfigParser( 0 )
39+
QgsWCSServer::QgsWCSServer( const QString& configFilePath, QMap<QString, QString> parameters, QgsConfigParser* cp,
40+
QgsRequestHandler* rh ): QgsOWSServer( configFilePath, parameters, cp, rh )
4241
{
4342
}
4443

4544
QgsWCSServer::~QgsWCSServer()
4645
{
4746
}
4847

49-
QgsWCSServer::QgsWCSServer()
48+
QgsWCSServer::QgsWCSServer(): QgsOWSServer( QString(), QMap<QString, QString>(), 0, 0 )
5049
{
5150
}
5251

52+
void QgsWCSServer::executeRequest()
53+
{
54+
//request type
55+
QString request = mParameters.value( "REQUEST" );
56+
if ( request.isEmpty() )
57+
{
58+
//do some error handling
59+
QgsDebugMsg( "unable to find 'REQUEST' parameter, exiting..." );
60+
mRequestHandler->sendServiceException( QgsMapServiceException( "OperationNotSupported", "Please check the value of the REQUEST parameter" ) );
61+
return;
62+
}
63+
64+
if ( request.compare( "GetCapabilities", Qt::CaseInsensitive ) == 0 )
65+
{
66+
QDomDocument capabilitiesDocument;
67+
try
68+
{
69+
capabilitiesDocument = getCapabilities();
70+
}
71+
catch ( QgsMapServiceException& ex )
72+
{
73+
mRequestHandler->sendServiceException( ex );
74+
return;
75+
}
76+
QgsDebugMsg( "sending GetCapabilities response" );
77+
mRequestHandler->sendGetCapabilitiesResponse( capabilitiesDocument );
78+
return;
79+
}
80+
else if ( request.compare( "DescribeCoverage", Qt::CaseInsensitive ) == 0 )
81+
{
82+
QDomDocument describeDocument;
83+
try
84+
{
85+
describeDocument = describeCoverage();
86+
}
87+
catch ( QgsMapServiceException& ex )
88+
{
89+
mRequestHandler->sendServiceException( ex );
90+
return;
91+
}
92+
QgsDebugMsg( "sending GetCapabilities response" );
93+
mRequestHandler->sendGetCapabilitiesResponse( describeDocument );
94+
return;
95+
}
96+
else if ( request.compare( "GetCoverage", Qt::CaseInsensitive ) == 0 )
97+
{
98+
QByteArray* coverageOutput;
99+
try
100+
{
101+
coverageOutput = getCoverage();
102+
}
103+
catch ( QgsMapServiceException& ex )
104+
{
105+
mRequestHandler->sendServiceException( ex );
106+
return;
107+
}
108+
if ( coverageOutput )
109+
{
110+
mRequestHandler->sendGetCoverageResponse( coverageOutput );
111+
}
112+
return;
113+
}
114+
}
115+
53116
QDomDocument QgsWCSServer::getCapabilities()
54117
{
55118
QgsDebugMsg( "Entering." );
@@ -153,15 +216,15 @@ QDomDocument QgsWCSServer::describeCoverage()
153216
//defining coverage name
154217
QString coveName = "";
155218
//read COVERAGE
156-
QMap<QString, QString>::const_iterator cove_name_it = mParameterMap.find( "COVERAGE" );
157-
if ( cove_name_it != mParameterMap.end() )
219+
QMap<QString, QString>::const_iterator cove_name_it = mParameters.find( "COVERAGE" );
220+
if ( cove_name_it != mParameters.end() )
158221
{
159222
coveName = cove_name_it.value();
160223
}
161224
if ( coveName == "" )
162225
{
163-
QMap<QString, QString>::const_iterator cove_name_it = mParameterMap.find( "IDENTIFIER" );
164-
if ( cove_name_it != mParameterMap.end() )
226+
QMap<QString, QString>::const_iterator cove_name_it = mParameters.find( "IDENTIFIER" );
227+
if ( cove_name_it != mParameters.end() )
165228
{
166229
coveName = cove_name_it.value();
167230
}
@@ -181,15 +244,15 @@ QByteArray* QgsWCSServer::getCoverage()
181244
//defining coverage name
182245
QString coveName = "";
183246
//read COVERAGE
184-
QMap<QString, QString>::const_iterator cove_name_it = mParameterMap.find( "COVERAGE" );
185-
if ( cove_name_it != mParameterMap.end() )
247+
QMap<QString, QString>::const_iterator cove_name_it = mParameters.find( "COVERAGE" );
248+
if ( cove_name_it != mParameters.end() )
186249
{
187250
coveName = cove_name_it.value();
188251
}
189252
if ( coveName == "" )
190253
{
191-
QMap<QString, QString>::const_iterator cove_name_it = mParameterMap.find( "IDENTIFIER" );
192-
if ( cove_name_it != mParameterMap.end() )
254+
QMap<QString, QString>::const_iterator cove_name_it = mParameters.find( "IDENTIFIER" );
255+
if ( cove_name_it != mParameters.end() )
193256
{
194257
coveName = cove_name_it.value();
195258
}
@@ -216,8 +279,8 @@ QByteArray* QgsWCSServer::getCoverage()
216279
QString crs = "";
217280

218281
// read BBOX
219-
QMap<QString, QString>::const_iterator bbIt = mParameterMap.find( "BBOX" );
220-
if ( bbIt == mParameterMap.end() )
282+
QMap<QString, QString>::const_iterator bbIt = mParameters.find( "BBOX" );
283+
if ( bbIt == mParameters.end() )
221284
{
222285
minx = 0; miny = 0; maxx = 0; maxy = 0;
223286
}
@@ -240,11 +303,11 @@ QByteArray* QgsWCSServer::getCoverage()
240303
}
241304

242305
// read WIDTH
243-
width = mParameterMap.value( "WIDTH", "0" ).toInt( &conversionSuccess );
306+
width = mParameters.value( "WIDTH", "0" ).toInt( &conversionSuccess );
244307
if ( !conversionSuccess )
245308
width = 0;
246309
// read HEIGHT
247-
height = mParameterMap.value( "HEIGHT", "0" ).toInt( &conversionSuccess );
310+
height = mParameters.value( "HEIGHT", "0" ).toInt( &conversionSuccess );
248311
if ( !conversionSuccess )
249312
{
250313
height = 0;
@@ -255,7 +318,7 @@ QByteArray* QgsWCSServer::getCoverage()
255318
mErrors << QString( "The WIDTH and HEIGHT are mandatory and have to be integer" );
256319
}
257320

258-
crs = mParameterMap.value( "CRS", "" );
321+
crs = mParameters.value( "CRS", "" );
259322
if ( crs == "" )
260323
{
261324
mErrors << QString( "The CRS is mandatory" );
@@ -281,7 +344,7 @@ QByteArray* QgsWCSServer::getCoverage()
281344
{
282345
// RESPONSE_CRS
283346
QgsCoordinateReferenceSystem responseCRS = rLayer->crs();
284-
crs = mParameterMap.value( "RESPONSE_CRS", "" );
347+
crs = mParameters.value( "RESPONSE_CRS", "" );
285348
if ( crs != "" )
286349
{
287350
responseCRS = QgsCRSCache::instance()->crsByAuthId( crs );

‎src/mapserver/qgswcsserver.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <QString>
2424
#include <map>
2525
#include "qgis.h"
26+
#include "qgsowsserver.h"
2627

2728
class QgsConfigParser;
2829
class QgsRequestHandler;
@@ -31,12 +32,16 @@ class QgsRequestHandler;
3132
a map<QString, QString>. This map is usually generated by a subclass of QgsWMSRequestHandler, which makes QgsWCSServer
3233
independent from any server side technology*/
3334

34-
class QgsWCSServer
35+
class QgsWCSServer: public QgsOWSServer
3536
{
3637
public:
3738
/**Constructor. Takes parameter map and a pointer to a renderer object (does not take ownership)*/
38-
QgsWCSServer( QMap<QString, QString> parameters );
39+
QgsWCSServer( const QString& configFilePath, QMap<QString, QString> parameters, QgsConfigParser* cp,
40+
QgsRequestHandler* rh );
3941
~QgsWCSServer();
42+
43+
void executeRequest();
44+
4045
/**Returns an XML file with the capabilities description (as described in the WFS specs)*/
4146
QDomDocument getCapabilities();
4247

@@ -55,10 +60,6 @@ class QgsWCSServer
5560

5661
/**Get service address from REQUEST_URI if not specified in the configuration*/
5762
QString serviceUrl() const;
58-
59-
/**Map containing the WMS parameters*/
60-
QMap<QString, QString> mParameterMap;
61-
QgsConfigParser* mConfigParser;
6263
};
6364

6465
#endif

‎src/mapserver/qgswfsserver.cpp

Lines changed: 103 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -66,20 +66,101 @@ static const QString GML_NAMESPACE = "http://www.opengis.net/gml";
6666
static const QString OGC_NAMESPACE = "http://www.opengis.net/ogc";
6767
static const QString QGS_NAMESPACE = "http://www.qgis.org/gml";
6868

69-
QgsWFSServer::QgsWFSServer( QMap<QString, QString> parameters )
70-
: mParameterMap( parameters )
71-
, mConfigParser( 0 )
69+
QgsWFSServer::QgsWFSServer( const QString& configFilePath, QMap<QString, QString> parameters, QgsConfigParser* cp,
70+
QgsRequestHandler* rh ): QgsOWSServer( configFilePath, parameters, cp, rh )
7271
{
7372
}
7473

7574
QgsWFSServer::~QgsWFSServer()
7675
{
7776
}
7877

79-
QgsWFSServer::QgsWFSServer()
78+
QgsWFSServer::QgsWFSServer(): QgsOWSServer( QString(), QMap<QString, QString>(), 0, 0 )
8079
{
8180
}
8281

82+
void QgsWFSServer::executeRequest()
83+
{
84+
if ( !mConfigParser && !mRequestHandler )
85+
{
86+
return;
87+
}
88+
89+
//request type
90+
QString request = mParameters.value( "REQUEST" );
91+
if ( request.isEmpty() )
92+
{
93+
//do some error handling
94+
QgsDebugMsg( "unable to find 'REQUEST' parameter, exiting..." );
95+
mRequestHandler->sendServiceException( QgsMapServiceException( "OperationNotSupported", "Please check the value of the REQUEST parameter" ) );
96+
return;
97+
}
98+
99+
if ( request.compare( "GetCapabilities", Qt::CaseInsensitive ) == 0 )
100+
{
101+
QDomDocument capabilitiesDocument;
102+
try
103+
{
104+
capabilitiesDocument = getCapabilities();
105+
}
106+
catch ( QgsMapServiceException& ex )
107+
{
108+
mRequestHandler->sendServiceException( ex );
109+
return;
110+
}
111+
QgsDebugMsg( "sending GetCapabilities response" );
112+
mRequestHandler->sendGetCapabilitiesResponse( capabilitiesDocument );
113+
return;
114+
}
115+
else if ( request.compare( "DescribeFeatureType", Qt::CaseInsensitive ) == 0 )
116+
{
117+
QDomDocument describeDocument;
118+
try
119+
{
120+
describeDocument = describeFeatureType();
121+
}
122+
catch ( QgsMapServiceException& ex )
123+
{
124+
mRequestHandler->sendServiceException( ex );
125+
return;
126+
}
127+
QgsDebugMsg( "sending GetCapabilities response" );
128+
mRequestHandler->sendGetCapabilitiesResponse( describeDocument );
129+
return;
130+
}
131+
else if ( request.compare( "GetFeature", Qt::CaseInsensitive ) == 0 )
132+
{
133+
//output format for GetFeature
134+
QString outputFormat = mParameters.value( "OUTPUTFORMAT" );
135+
try
136+
{
137+
getFeature( *mRequestHandler, outputFormat );
138+
}
139+
catch ( QgsMapServiceException& ex )
140+
{
141+
mRequestHandler->sendServiceException( ex );
142+
}
143+
144+
return;
145+
}
146+
else if ( request.compare( "Transaction", Qt::CaseInsensitive ) == 0 )
147+
{
148+
QDomDocument transactionDocument;
149+
try
150+
{
151+
transactionDocument = transaction( mParameters.value( "REQUEST_BODY" ) );
152+
}
153+
catch ( QgsMapServiceException& ex )
154+
{
155+
mRequestHandler->sendServiceException( ex );
156+
return;
157+
}
158+
QgsDebugMsg( "sending Transaction response" );
159+
mRequestHandler->sendGetCapabilitiesResponse( transactionDocument );
160+
return;
161+
}
162+
}
163+
83164
QDomDocument QgsWFSServer::getCapabilities()
84165
{
85166
QgsDebugMsg( "Entering." );
@@ -246,7 +327,7 @@ QDomDocument QgsWFSServer::describeFeatureType()
246327

247328
QDomDocument queryDoc;
248329
QString errorMsg;
249-
if ( queryDoc.setContent( mParameterMap.value( "REQUEST_BODY" ), true, &errorMsg ) )
330+
if ( queryDoc.setContent( mParameters.value( "REQUEST_BODY" ), true, &errorMsg ) )
250331
{
251332
//read doc
252333
QDomElement queryDocElem = queryDoc.documentElement();
@@ -270,8 +351,8 @@ QDomDocument QgsWFSServer::describeFeatureType()
270351
else
271352
{
272353
//read TYPENAME
273-
QMap<QString, QString>::const_iterator type_name_it = mParameterMap.find( "TYPENAME" );
274-
if ( type_name_it != mParameterMap.end() )
354+
QMap<QString, QString>::const_iterator type_name_it = mParameters.find( "TYPENAME" );
355+
if ( type_name_it != mParameters.end() )
275356
{
276357
typeName = type_name_it.value();
277358
}
@@ -300,7 +381,7 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
300381

301382
QDomDocument doc;
302383
QString errorMsg;
303-
if ( doc.setContent( mParameterMap.value( "REQUEST_BODY" ), true, &errorMsg ) )
384+
if ( doc.setContent( mParameters.value( "REQUEST_BODY" ), true, &errorMsg ) )
304385
{
305386
QDomElement docElem = doc.documentElement();
306387

@@ -562,8 +643,8 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
562643
//read FEATUREDID
563644
bool featureIdOk = false;
564645
QStringList featureIdList;
565-
QMap<QString, QString>::const_iterator feature_id_it = mParameterMap.find( "FEATUREID" );
566-
if ( feature_id_it != mParameterMap.end() )
646+
QMap<QString, QString>::const_iterator feature_id_it = mParameters.find( "FEATUREID" );
647+
if ( feature_id_it != mParameters.end() )
567648
{
568649
featureIdOk = true;
569650
featureIdList = feature_id_it.value().split( "," );
@@ -585,8 +666,8 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
585666
if ( !featureIdOk )
586667
{
587668
//read TYPENAME
588-
QMap<QString, QString>::const_iterator type_name_it = mParameterMap.find( "TYPENAME" );
589-
if ( type_name_it != mParameterMap.end() )
669+
QMap<QString, QString>::const_iterator type_name_it = mParameters.find( "TYPENAME" );
670+
if ( type_name_it != mParameters.end() )
590671
{
591672
mTypeName = type_name_it.value();
592673
}
@@ -596,8 +677,8 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
596677
}
597678

598679
//read FILTER
599-
QMap<QString, QString>::const_iterator filterIt = mParameterMap.find( "FILTER" );
600-
if ( filterIt != mParameterMap.end() )
680+
QMap<QString, QString>::const_iterator filterIt = mParameters.find( "FILTER" );
681+
if ( filterIt != mParameters.end() )
601682
{
602683
QString errorMsg;
603684
if ( !filter.setContent( filterIt.value(), true, &errorMsg ) )
@@ -613,8 +694,8 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
613694
//read EXP_FILTER
614695
if ( !filterOk )
615696
{
616-
QMap<QString, QString>::const_iterator expFilterIt = mParameterMap.find( "EXP_FILTER" );
617-
if ( expFilterIt != mParameterMap.end() )
697+
QMap<QString, QString>::const_iterator expFilterIt = mParameters.find( "EXP_FILTER" );
698+
if ( expFilterIt != mParameters.end() )
618699
{
619700
expFilterOk = true;
620701
expFilter = expFilterIt.value();
@@ -624,8 +705,8 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
624705
//read BBOX
625706
if ( !filterOk )
626707
{
627-
QMap<QString, QString>::const_iterator bbIt = mParameterMap.find( "BBOX" );
628-
if ( bbIt == mParameterMap.end() )
708+
QMap<QString, QString>::const_iterator bbIt = mParameters.find( "BBOX" );
709+
if ( bbIt == mParameters.end() )
629710
{
630711
minx = 0; miny = 0; maxx = 0; maxy = 0;
631712
}
@@ -647,8 +728,8 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
647728
}
648729

649730
//read MAXFEATURES
650-
QMap<QString, QString>::const_iterator mfIt = mParameterMap.find( "MAXFEATURES" );
651-
if ( mfIt != mParameterMap.end() )
731+
QMap<QString, QString>::const_iterator mfIt = mParameters.find( "MAXFEATURES" );
732+
if ( mfIt != mParameters.end() )
652733
{
653734
QString mfString = mfIt.value();
654735
bool mfOk;
@@ -659,8 +740,8 @@ int QgsWFSServer::getFeature( QgsRequestHandler& request, const QString& format
659740
//read PROPERTYNAME
660741
mWithGeom = true;
661742
mPropertyName = "*";
662-
QMap<QString, QString>::const_iterator pnIt = mParameterMap.find( "PROPERTYNAME" );
663-
if ( pnIt != mParameterMap.end() )
743+
QMap<QString, QString>::const_iterator pnIt = mParameters.find( "PROPERTYNAME" );
744+
if ( pnIt != mParameters.end() )
664745
{
665746
mPropertyName = pnIt.value();
666747
}

‎src/mapserver/qgswfsserver.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <QString>
2424
#include <map>
2525
#include "qgis.h"
26+
#include "qgsowsserver.h"
2627
#include "qgsvectorlayer.h"
2728

2829
class QgsCoordinateReferenceSystem;
@@ -54,12 +55,16 @@ class QPainter;
5455
a map<QString, QString>. This map is usually generated by a subclass of QgsWMSRequestHandler, which makes QgsWFSServer
5556
independent from any server side technology*/
5657

57-
class QgsWFSServer
58+
class QgsWFSServer: public QgsOWSServer
5859
{
5960
public:
6061
/**Constructor. Takes parameter map and a pointer to a renderer object (does not take ownership)*/
61-
QgsWFSServer( QMap<QString, QString> parameters );
62+
QgsWFSServer( const QString& configFilePath, QMap<QString, QString> parameters, QgsConfigParser* cp,
63+
QgsRequestHandler* rh );
6264
~QgsWFSServer();
65+
66+
void executeRequest();
67+
6368
/**Returns an XML file with the capabilities description (as described in the WFS specs)*/
6469
QDomDocument getCapabilities();
6570

@@ -84,9 +89,6 @@ class QgsWFSServer
8489
/**Get service address from REQUEST_URI if not specified in the configuration*/
8590
QString serviceUrl() const;
8691

87-
/**Map containing the WMS parameters*/
88-
QMap<QString, QString> mParameterMap;
89-
QgsConfigParser* mConfigParser;
9092
/* The Type of Feature created */
9193
QString mTypeName;
9294
/* The list of Feature's Type requested */

‎src/mapserver/qgswmsserver.cpp

Lines changed: 306 additions & 92 deletions
Large diffs are not rendered by default.

‎src/mapserver/qgswmsserver.h

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,14 @@
1818
#ifndef QGSWMSSERVER_H
1919
#define QGSWMSSERVER_H
2020

21+
#include "qgsowsserver.h"
2122
#include <QDomDocument>
2223
#include <QMap>
2324
#include <QPair>
2425
#include <QString>
2526
#include <map>
2627

28+
class QgsCapabilitiesCache;
2729
class QgsCoordinateReferenceSystem;
2830
class QgsComposerLayerItem;
2931
class QgsComposerLegendItem;
@@ -52,12 +54,17 @@ class QStandardItem;
5254
a map<QString, QString>. This map is usually generated by a subclass of QgsWMSRequestHandler, which makes QgsWMSServer
5355
independent from any server side technology*/
5456

55-
class QgsWMSServer
57+
class QgsWMSServer: public QgsOWSServer
5658
{
5759
public:
58-
/**Constructor. Takes parameter map and a pointer to a renderer object (does not take ownership)*/
59-
QgsWMSServer( QMap<QString, QString> parameters, QgsMapRenderer* renderer );
60+
/**Constructor. Takes ownership of QgsRequestHandler. Does _NOT_ take ownership of
61+
QgsConfigParser, QgsCapabilitiesCache and QgsMapRenderer*/
62+
QgsWMSServer( const QString& configFilePath, QMap<QString, QString> parameters, QgsConfigParser* cp, QgsRequestHandler* rh,
63+
QgsMapRenderer* renderer, QgsCapabilitiesCache* capCache );
6064
~QgsWMSServer();
65+
66+
void executeRequest();
67+
6168
/**Returns an XML file with the capabilities description (as described in the WMS specs)
6269
@param version WMS version (1.1.1 or 1.3.0)
6370
@param fullProjectInformation If true: add extended project information (does not validate against WMS schema)*/
@@ -220,10 +227,10 @@ class QgsWMSServer
220227
void convertFeatureInfoToSIA2045( QDomDocument& doc );
221228

222229
/**Map containing the WMS parameters*/
223-
QMap<QString, QString> mParameterMap;
224-
QgsConfigParser* mConfigParser;
225230
QgsMapRenderer* mMapRenderer;
226231

232+
QgsCapabilitiesCache* mCapabilitiesCache;
233+
227234
QDomElement createFeatureGML(
228235
QgsFeature* feat,
229236
QgsVectorLayer* layer,

0 commit comments

Comments
 (0)
Please sign in to comment.