diff ui/sslconnection_curl.h @ 910:eaed02defe6a

More SSLConnection refactoring. Fixes curl downloader.
author Andre Heinecke <andre.heinecke@intevation.de>
date Mon, 18 Aug 2014 18:51:33 +0200
parents d1c951b3012d
children 879a634d0a40
line wrap: on
line diff
--- a/ui/sslconnection_curl.h	Thu Aug 14 11:24:13 2014 +0200
+++ b/ui/sslconnection_curl.h	Mon Aug 18 18:51:33 2014 +0200
@@ -8,11 +8,19 @@
  * See LICENSE.txt for details.
  */
 
+/**
+ * @file sslconnection_curl.h
+ * @brief SSLConnection utilizing libcurl for http.
+ */
+
 #include "sslconnection.h"
 #include <curl/curl.h>
 
+#include <QDateTime>
 #include <QTemporaryFile>
 
+class QSaveFile;
+
 class SSLConnectionCurl : public SSLConnection
 {
 public:
@@ -21,30 +29,20 @@
 
     ~SSLConnectionCurl();
 
-    /** @brief write */
-    int write(const QByteArray& request);
+    int connect();
 
-    /**
-     * @brief read at most len bytes and reset the connection
-     *
-     * @param [in] len Amount of bytes to read.
-     *
-     * @returns a byte array containing the data or
-     * a NULL byte array on error*/
-    QByteArray read(size_t len);
+    QDateTime getLastModifiedHeader(const QString &resource);
 
-    /** @brief: Establish the connection
-     *
-     * @returns 0 on success otherwise an error or -1 is returned
-     */
-    int connect();
+    bool downloadFile(const QString &resource, const QString &filename,
+                      size_t maxSize);
 private:
     CURL *mCurl;
     QTemporaryFile mCertFile;
+    char mErrBuf[CURL_ERROR_SIZE + 1];
+
+    /** @brief Internal write function for curl */
 };
 
-/**
- * @file sslconnection_curl.h
- * @brief SSLConnection utilizing libcurl for http.
- */
+size_t write_data(void *ptr, size_t size, size_t nmemb, QSaveFile *fp);
+
 #endif // UI_SSLCONNECTION_CURL_H

http://wald.intevation.org/projects/trustbridge/