QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
server
qgsserverresponse.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsserverresponse.h
3
4
Define response class for services
5
-------------------
6
begin : 2016-12-05
7
copyright : (C) 2016 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 "
qgsserverresponse.h
"
21
22
#include "
qgsmessagelog.h
"
23
#include "
qgsserverexception.h
"
24
25
#include <QString>
26
27
using namespace
Qt::StringLiterals;
28
29
void
QgsServerResponse::write
(
const
QString &
data
)
30
{
31
QIODevice *iodev =
io
();
32
if
( iodev )
33
{
34
iodev->write(
data
.toUtf8() );
35
}
36
else
37
{
38
QgsMessageLog::logMessage
(
"Error: No IODevice in QgsServerResponse !!!"
);
39
}
40
}
41
42
qint64
QgsServerResponse::write
(
const
QByteArray &byteArray )
43
{
44
QIODevice *iodev =
io
();
45
if
( iodev )
46
{
47
return
iodev->write( byteArray );
48
}
49
return
0;
50
}
51
52
qint64
QgsServerResponse::write
(
const
char
*
data
, qint64 maxsize )
53
{
54
QIODevice *iodev =
io
();
55
if
( iodev )
56
{
57
return
iodev->write(
data
, maxsize );
58
}
59
return
0;
60
}
61
62
qint64
QgsServerResponse::write
(
const
char
*
data
)
63
{
64
QIODevice *iodev =
io
();
65
if
( iodev )
66
{
67
return
iodev->write(
data
);
68
}
69
return
0;
70
}
71
72
void
QgsServerResponse::finish
()
73
{}
74
75
void
QgsServerResponse::flush
()
76
{}
77
78
qint64
QgsServerResponse::write
(
const
std::string
data
)
79
{
80
return
write
(
data
.c_str() );
81
}
82
83
void
QgsServerResponse::write
(
const
QgsServerException
&ex )
84
{
85
QString responseFormat;
86
const
QByteArray ba = ex.
formatResponse
( responseFormat );
87
88
if
(
headersSent
() )
89
{
90
QgsMessageLog::logMessage
( u
"Error: Cannot write exception after header sent !"
_s );
91
return
;
92
}
93
94
clear
();
95
setStatusCode
( ex.
responseCode
() );
96
setHeader
(
"Content-Type"
, responseFormat );
97
write
( ba );
98
}
99
100
QgsFeedback
*
QgsServerResponse::feedback
()
const
101
{
102
return
nullptr
;
103
}
QgsFeedback
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition
qgsfeedback.h:44
QgsMessageLog::logMessage
static void logMessage(const QString &message, const QString &tag=QString(), Qgis::MessageLevel level=Qgis::MessageLevel::Warning, bool notifyUser=true, const char *file=__builtin_FILE(), const char *function=__builtin_FUNCTION(), int line=__builtin_LINE(), Qgis::StringFormat format=Qgis::StringFormat::PlainText)
Adds a message to the log instance (and creates it if necessary).
Definition
qgsmessagelog.cpp:35
QgsServerException
Exception base class for server exceptions.
Definition
qgsserverexception.h:44
QgsServerException::responseCode
int responseCode() const
Returns the return HTTP response code associated with this exception.
Definition
qgsserverexception.h:56
QgsServerException::formatResponse
virtual QByteArray formatResponse(QString &responseFormat) const
Formats the exception for sending to client.
Definition
qgsserverexception.cpp:31
QgsServerResponse::write
virtual void write(const QString &data)
Write string This is a convenient method that will write directly to the underlying I/O device.
Definition
qgsserverresponse.cpp:29
QgsServerResponse::flush
virtual void flush()
Flushes the current output buffer to the network.
Definition
qgsserverresponse.cpp:75
QgsServerResponse::data
virtual QByteArray data() const =0
Gets the data written so far.
QgsServerResponse::setHeader
virtual void setHeader(const QString &key, const QString &value)=0
Set a single header value replacing any existing value(s) for the same key.
QgsServerResponse::feedback
virtual QgsFeedback * feedback() const
Returns the socket feedback if any.
Definition
qgsserverresponse.cpp:100
QgsServerResponse::clear
virtual void clear()=0
Reset all headers and content for this response.
QgsServerResponse::finish
virtual void finish()
Finish the response, ending the transaction.
Definition
qgsserverresponse.cpp:72
QgsServerResponse::headersSent
virtual bool headersSent() const =0
Returns true if the headers have already been sent.
QgsServerResponse::io
virtual QIODevice * io()=0
Returns the underlying QIODevice.
QgsServerResponse::setStatusCode
virtual void setStatusCode(int code)=0
Set the http status code.
qgsmessagelog.h
qgsserverexception.h
qgsserverresponse.h
Generated on
for QGIS API Documentation by
1.17.0