forked from pipacs/o2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patho2reply.cpp
58 lines (48 loc) · 1.37 KB
/
o2reply.cpp
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
#include <QTimer>
#include <QNetworkReply>
#include "o2reply.h"
O2Reply::O2Reply(QNetworkReply *r, int timeOut, QObject *parent): QTimer(parent), reply(r) {
setSingleShot(true);
connect(this, SIGNAL(error(QNetworkReply::NetworkError)), reply, SIGNAL(error(QNetworkReply::NetworkError)), Qt::QueuedConnection);
connect(this, SIGNAL(timeout()), this, SLOT(onTimeOut()), Qt::QueuedConnection);
start(timeOut);
}
void O2Reply::onTimeOut() {
Q_EMIT error(QNetworkReply::TimeoutError);
}
O2ReplyList::~O2ReplyList() {
foreach (O2Reply *timedReply, replies_) {
delete timedReply;
}
}
void O2ReplyList::add(QNetworkReply *reply) {
if (reply && ignoreSslErrors())
reply->ignoreSslErrors();
add(new O2Reply(reply));
}
void O2ReplyList::add(O2Reply *reply) {
replies_.append(reply);
}
void O2ReplyList::remove(QNetworkReply *reply) {
O2Reply *o2Reply = find(reply);
if (o2Reply) {
o2Reply->stop();
(void)replies_.removeOne(o2Reply);
}
}
O2Reply *O2ReplyList::find(QNetworkReply *reply) {
foreach (O2Reply *timedReply, replies_) {
if (timedReply->reply == reply) {
return timedReply;
}
}
return 0;
}
bool O2ReplyList::ignoreSslErrors()
{
return ignoreSslErrors_;
}
void O2ReplyList::setIgnoreSslErrors(bool ignoreSslErrors)
{
ignoreSslErrors_ = ignoreSslErrors;
}