1- /* *This class is an interface hiding the details of reading input and writing output from/to a wms request mechanism.
2- Examples of possible mechanisms are cgi Get, cgi Post, SOAP or the usage as a standalone command line executable*/
1+ /* **************************************************************************
2+ qgsrequesthandler.sip
3+
4+ This class is an interface hiding the details of reading input and
5+ writing output from/to a wms request mechanism
6+ -------------------
7+ begin : 2014-09-10
8+ copyright : (C) 2014 by Alessandro Pasotti
9+ email : a dot pasotti at itopen dot it
10+ ***************************************************************************/
11+
12+
13+ /* *
14+ * \class QgsRequestHandler
15+ * \brief This class is an interface hiding the details of reading input and
16+ * writing output from/to a wms request mechanism.
17+ *
18+ * Examples of possible mechanisms are cgi Get, cgi Post, SOAP or the usage
19+ * as a standalone command line executable
20+ */
21+
322class QgsRequestHandler
423{
524%TypeHeaderCode
@@ -10,46 +29,61 @@ class QgsRequestHandler
1029
1130 public:
1231
13- virtual void parseInput () = 0;
14- virtual void setGetMapResponse ( const QString& service, QImage* img, int imageQuality ) = 0;
15- virtual void setGetCapabilitiesResponse ( const QDomDocument& doc ) = 0;
16- virtual void setGetFeatureInfoResponse ( const QDomDocument& infoDoc, const QString& infoFormat ) = 0;
17- virtual void setServiceException ( QgsMapServiceException ex ) = 0;
18- virtual void setGetStyleResponse ( const QDomDocument& doc ) = 0;
19- virtual void setGetPrintResponse ( QByteArray* ba ) = 0;
20- virtual bool startGetFeatureResponse ( QByteArray* ba, const QString& infoFormat ) = 0;
21- virtual void setGetFeatureResponse ( QByteArray* ba ) = 0;
22- virtual void endGetFeatureResponse ( QByteArray* ba ) = 0;
23- virtual void setGetCoverageResponse ( QByteArray* ba ) = 0;
24-
2532 /* *Set an HTTP header*/
2633 virtual void setHeader ( const QString &name, const QString &value ) = 0;
2734 /* *Remove an HTTP header*/
2835 virtual int removeHeader ( const QString &name ) = 0;
2936 /* *Delete all HTTP headers*/
3037 virtual void clearHeaders ( ) = 0;
38+ /* *Returns the response body*/
39+ virtual QByteArray* body ();
3140 /* *Append the bytestream to response body*/
3241 virtual void appendBody ( const QByteArray &body) = 0;
3342 /* *Clears the response body*/
3443 virtual void clearBody ( ) = 0;
44+ /* *Set the info format string such as "text/xml"*/
3545 virtual void setInfoFormat ( const QString &format ) = 0;
36- virtual void sendResponse ( ) const = 0;
46+ /* *Check wether there is any header set or the body is not empty */
3747 virtual bool responseReady () const = 0;
3848 /* *Pointer to last raised exception*/
3949 virtual bool exceptionRaised () const = 0;
50+ /* *Return a copy of the parsed parameters as a key-value pair, to modify
51+ * a parameter setParameter( const QString &key, const QString &value)
52+ * and removeParameter(const QString &key) must be used
53+ */
4054 QMap<QString, QString> parameterMap ( );
4155 /* *Set a request parameter*/
4256 virtual void setParameter (const QString &key, const QString &value) = 0;
4357 /* *Remove a request parameter*/
4458 virtual int removeParameter (const QString &key) = 0;
4559 /* *Return a request parameter*/
4660 virtual QString parameter (const QString &key) const = 0;
61+ /* *Return the image format*/
4762 QString format () const ;
63+ /* *Return the format string as requested by the client*/
64+ QString infoFormat () const ;
65+
66+ private:
4867
49- protected:
68+ /* Not yet part of the API */
5069
5170 virtual void sendHeaders ( ) const = 0;
5271 virtual void sendBody ( ) const = 0;
5372
73+ /* *Send out the response writing to FCGI stdout*/
74+ virtual void sendResponse ( ) const = 0;
75+
76+ virtual void parseInput () = 0;
77+ virtual void setGetMapResponse ( const QString& service, QImage* img, int imageQuality ) = 0;
78+ virtual void setGetCapabilitiesResponse ( const QDomDocument& doc ) = 0;
79+ virtual void setGetFeatureInfoResponse ( const QDomDocument& infoDoc, const QString& infoFormat ) = 0;
80+ virtual void setServiceException ( QgsMapServiceException ex ) = 0;
81+ virtual void setGetStyleResponse ( const QDomDocument& doc ) = 0;
82+ virtual void setGetPrintResponse ( QByteArray* ba ) = 0;
83+ virtual bool startGetFeatureResponse ( QByteArray* ba, const QString& infoFormat ) = 0;
84+ virtual void setGetFeatureResponse ( QByteArray* ba ) = 0;
85+ virtual void endGetFeatureResponse ( QByteArray* ba ) = 0;
86+ virtual void setGetCoverageResponse ( QByteArray* ba ) = 0;
87+
5488
5589};
0 commit comments