-
-
Notifications
You must be signed in to change notification settings - Fork 3k
/
qgsserverresponse.sip
133 lines (110 loc) · 3.68 KB
/
qgsserverresponse.sip
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/***************************************************************************
qgsserverresponse.sip
Define response class for services
-------------------
begin : 2016-12-05
copyright : (C) 2016 by David Marteau
email : david dot marteau at 3liz dot com
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
/**
* \ingroup server
* QgsServerResponse
* Class defining response interface passed to services QgsService::executeRequest() method
*/
class QgsServerResponse
{
%TypeHeaderCode
#include "qgsserverresponse.h"
%End
public:
//!constructor
QgsServerResponse();
//! destructor
virtual ~QgsServerResponse();
/** Set Header entry
* Add Header entry to the response
* Note that it is usually an error to set Header after writing data
*/
virtual void setHeader( const QString &key, const QString &value ) = 0;
/**
* Clear header
* Undo a previous 'set_header' call
*/
virtual void clearHeader( const QString &key ) = 0;
/**
* Return the header value
*/
virtual QString getHeader( const QString &key ) const = 0;
/**
* Return the list of all header keys
*/
virtual QList<QString> headerKeys() const = 0;
/**
* Return true if the headers have alredy been sent
*/
virtual bool headersSent() const = 0;
/** Set the http return code
* @param code HTTP return code value
*/
virtual void setReturnCode( int code ) = 0;
/**
* Send error
* This method delegates error handling at the server level. This is different
* from calling setReturnCode() along with and a specific response body.
* @param code HTTP return code value
* @param message An informative error message
*/
virtual void sendError( int code, const QString &message ) = 0;
/**
* Write string
* This is a convenient method that will write directly
* to the underlying I/O device
*/
virtual void write( const QString &data );
/**
* Write chunk of data
* This is a convenient method that will write directly to the
* underlying I/O device
* @return the number of bytes that were actually written
*/
virtual qint64 write( const QByteArray &byteArray );
/**
* Write server exception
*/
virtual void write( const QgsServerException &ex );
/**
* Return the underlying QIODevice
*/
virtual QIODevice *io() = 0;
/**
* End the transaction
*/
virtual void finish() = 0;
/**
* Flushes the current output buffer to the network
*
* 'flush()' may be called multiple times. For HTTP transactions
* headers will be written on the first call to 'flush()'.
*/
virtual void flush() = 0;
/**
* Reset all headers and content for this response
*/
virtual void clear() = 0;
/**
* Get the data written so far
*/
virtual QByteArray data() const = 0;
/**
* Truncate internal buffer
*/
virtual void truncate() = 0;
};