forked from azadkuh/qhttp
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathqhttpserverresponse.cpp
More file actions
90 lines (73 loc) · 2.3 KB
/
Copy pathqhttpserverresponse.cpp
File metadata and controls
90 lines (73 loc) · 2.3 KB
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
#include "private/qhttpserverresponse_private.hpp"
///////////////////////////////////////////////////////////////////////////////
namespace qhttp {
namespace server {
///////////////////////////////////////////////////////////////////////////////
QHttpResponse::QHttpResponse(QHttpConnection* conn)
: QHttpAbstractOutput(conn) , d_ptr(new QHttpResponsePrivate(conn, this)) {
d_ptr->initialize();
QHTTP_LINE_LOG
}
QHttpResponse::QHttpResponse(QHttpResponsePrivate& dd, QHttpConnection* conn)
: QHttpAbstractOutput(conn) , d_ptr(&dd) {
d_ptr->initialize();
QHTTP_LINE_LOG
}
QHttpResponse::~QHttpResponse() {
QHTTP_LINE_LOG
}
void
QHttpResponse::setStatusCode(TStatusCode code) {
d_func()->istatus = code;
}
void
QHttpResponse::setVersion(const QString &versionString) {
d_func()->iversion = versionString;
}
void
QHttpResponse::addHeader(const QByteArray &field, const QByteArray &value) {
d_func()->addHeader(field, value);
}
THeaderHash&
QHttpResponse::headers() {
return d_func()->iheaders;
}
void
QHttpResponse::write(const QByteArray &data) {
d_func()->writeData(data);
}
void
QHttpResponse::end(const QByteArray &data) {
Q_D(QHttpResponse);
if ( d->endPacket(data) )
emit done(!d->ikeepAlive);
}
QHttpConnection*
QHttpResponse::connection() const {
return d_func()->iconnection;
}
///////////////////////////////////////////////////////////////////////////////
QByteArray
QHttpResponsePrivate::makeTitle() {
QString title = QString("HTTP/%1 %2 %3\r\n")
.arg(iversion)
.arg(istatus)
.arg(Stringify::toString(istatus));
return title.toLatin1();
}
void
QHttpResponsePrivate::prepareHeadersToWrite() {
if ( !iheaders.contains("date") ) {
// Sun, 06 Nov 1994 08:49:37 GMT - RFC 822. Use QLocale::c() so english is used for month and
// day.
QString dateString = QLocale::c().
toString(QDateTime::currentDateTimeUtc(),
"ddd, dd MMM yyyy hh:mm:ss")
.append(" GMT");
addHeader("date", dateString.toLatin1());
}
}
///////////////////////////////////////////////////////////////////////////////
} // namespace server
} // namespace qhttp
///////////////////////////////////////////////////////////////////////////////