RestLink 2.2.0
Powerfull Rest Client for Qt
Loading...
Searching...
No Matches
responsebase.h
1#ifndef RESTLINK_RESPONSEBASE_H
2#define RESTLINK_RESPONSEBASE_H
3
4#include <RestLink/global.h>
5
6#include <QtCore/qiodevice.h>
7
8class QJsonParseError;
9
10namespace RestLink {
11
12class RESTLINK_EXPORT ResponseBase : public QIODevice
13{
14 Q_OBJECT
15
16public:
17 explicit ResponseBase(QObject *parent = nullptr);
18 virtual ~ResponseBase();
19
20 bool isSequential() const override;
21 bool open(OpenMode mode) override;
22 void close() override;
23 qint64 pos() const override;
24 qint64 size() const override;
25 bool seek(qint64 pos) override;
26 bool atEnd() const override;
27 bool reset() override;
28 qint64 bytesAvailable() const override;
29 qint64 bytesToWrite() const override;
30 bool canReadLine() const override;
31 bool waitForReadyRead(int msecs) override;
32 bool waitForBytesWritten(int msecs) override;
33
34 virtual QJsonObject readJsonObject(QJsonParseError *error = nullptr);
35 virtual QJsonArray readJsonArray(QJsonParseError *error = nullptr);
36 virtual QJsonValue readJson(QJsonParseError *error = nullptr);
37 virtual QString readString();
38 virtual QByteArray readBody();
39
40 QIODevice *responseDevice() const;
41
42protected:
43 qint64 readData(char *data, qint64 maxlen) override;
44 qint64 readLineData(char *data, qint64 maxlen) override;
45 qint64 skipData(qint64 maxSize) override;
46 qint64 writeData(const char *data, qint64 len) override;
47
48 void setResponseDevice(QIODevice *device);
49
50private:
51 QIODevice *m_device;
52};
53
54} // namespace RestLink
55
56#endif // RESTLINK_RESPONSEBASE_H