warehouse for ces2019
[apps/onscreenapp.git] / app / src / httpclient.h
diff --git a/app/src/httpclient.h b/app/src/httpclient.h
new file mode 100644 (file)
index 0000000..42f002c
--- /dev/null
@@ -0,0 +1,48 @@
+
+#ifndef HTTPCLIENT_H
+#define HTTPCLIENT_H
+
+#include <functional>
+#include <QtGlobal>
+
+class QString;
+class QByteArray;
+class QNetworkRequest;
+class QNetworkReply;
+class QNetworkAccessManager;
+class HttpClientPrivate;
+
+class HttpClient {
+ public:
+  HttpClient(const QString& url);
+  ~HttpClient();
+
+  HttpClient& manager(QNetworkAccessManager* manager);
+
+  HttpClient& debug(bool debug);
+
+  HttpClient& param(const QString& name, const QString& value);
+
+  HttpClient& header(const QString& header, const QString& value);
+
+  void get(std::function<void(const QString&)> successHandler,
+           std::function<void(const QString&)> errorHandler = NULL,
+           const char* encoding = "UTF-8");
+
+  void download(
+      const QString& savePath,
+      std::function<void(const QString&)> successHandler = NULL,
+      std::function<void(const QString&)> errorHandler = NULL,
+      std::function<void(const qint64, const qint64)> progressHandler = NULL);
+
+  void download(
+      std::function<void(const QByteArray&)> readyRead,
+      std::function<void(const QString&)> successHandler = NULL,
+      std::function<void(const QString&)> errorHandler = NULL,
+      std::function<void(const qint64, const qint64)> progressHandler = NULL);
+
+ private:
+  HttpClientPrivate* d;
+};
+
+#endif  // !HTTPCLIENT_H