File: http.h

package info (click to toggle)
nixnote2 2.0~beta11-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 9,448 kB
  • ctags: 7,058
  • sloc: cpp: 68,338; java: 1,096; sh: 834; makefile: 27
file content (62 lines) | stat: -rw-r--r-- 1,579 bytes parent folder | download | duplicates (2)
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
#ifndef QEVERCLOUD_HTTP_H
#define QEVERCLOUD_HTTP_H

#include <QString>
#include <QByteArray>
#include <QtEndian>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QTimer>
#include <QSharedPointer>
#include <QTypeInfo>
#include <QSslError>

/** @cond HIDDEN_SYMBOLS  */

namespace qevercloud {

QNetworkAccessManager* evernoteNetworkAccessManager();

// the class greatly simplifies QNetworkReply handling
class ReplyFetcher: public QObject {
    Q_OBJECT
public:
    ReplyFetcher();
    void start(QNetworkAccessManager* nam, QUrl url);
    // if !postData.isNull() then POST will be issued instead of GET
    void start(QNetworkAccessManager* nam, QNetworkRequest request, QByteArray postData = QByteArray());
    bool isError() {return !success_;}
    QString errorText() {return errorText_;}
    QByteArray receivedData() {return receivedData_;}
    int httpStatusCode() {return httpStatusCode_;}

signals:
    void replyFetched(QObject*); // sends itself

private slots:
    void onFinished();
    void onError();
    void onSslErrors(QList<QSslError> l);
    void onDownloadProgress(qint64, qint64);
    void checkForTimeout();

private:
    QSharedPointer<QNetworkReply> reply;
    bool success_;
    QString errorText_;
    QByteArray receivedData_;
    int httpStatusCode_;
    void setError(QString errorText);
    QTimer* ticker_;
    qint64 lastNetworkTime_;
};

QNetworkRequest createEvernoteRequest(QString url);
QByteArray askEvernote(QString url, QByteArray postData);

}

/** @endcond */

#endif // QEVERCLOUD_HTTP_H