From 6d6041f03cd0e70563f12d5332050588ad6858e7 Mon Sep 17 00:00:00 2001 From: Björn Hagemeister Date: Wed, 16 Apr 2014 18:15:28 +0200 Subject: New feature. Download of tutor-ip-list and automated assingment. TODO: Make source url configurable. --- src/server/net/filedownloader.cpp | 36 ++++++++++++++++++++++++++++++++ src/server/net/filedownloader.h | 44 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 src/server/net/filedownloader.cpp create mode 100644 src/server/net/filedownloader.h (limited to 'src/server/net') diff --git a/src/server/net/filedownloader.cpp b/src/server/net/filedownloader.cpp new file mode 100644 index 0000000..70e1520 --- /dev/null +++ b/src/server/net/filedownloader.cpp @@ -0,0 +1,36 @@ +/* + * FileDownloader.cpp + * + * Created on: Mar 7, 2014 + * Author: nils + */ + +#include + +#include "filedownloader.h" + +FileDownloader::FileDownloader(QObject *parent) : + QObject(parent) { + connect(&m_WebCtrl, SIGNAL(finished(QNetworkReply*)), + SLOT(fileDownloaded(QNetworkReply*))); +} + +FileDownloader::~FileDownloader() { + +} + +void FileDownloader::connectSlot(QObject* obj, const char* slot) { + QObject::connect(this, SIGNAL(downloaded(QByteArray&)), + obj, slot); +} + +void FileDownloader::fileDownloaded(QNetworkReply* pReply) { + QByteArray downloadedData = pReply->readAll(); + //emit a signal + pReply->deleteLater(); + emit downloaded(downloadedData); +} + +void FileDownloader::downloadFile(const QUrl& fileUrl) { + m_WebCtrl.get(QNetworkRequest(fileUrl)); +} diff --git a/src/server/net/filedownloader.h b/src/server/net/filedownloader.h new file mode 100644 index 0000000..68eaa39 --- /dev/null +++ b/src/server/net/filedownloader.h @@ -0,0 +1,44 @@ +/* + * filedownloader.h + * + * Created on: Mar 7, 2014 + * Author: nils + */ + +#ifndef FILEDOWNLOADER_H_ +#define FILEDOWNLOADER_H_ + +#include +#include +#include +#include +#include + +class FileDownloader : public QObject +{ + Q_OBJECT +public: + explicit FileDownloader(QObject *parent = 0); + + virtual ~FileDownloader(); + + void downloadFile(const QUrl& fileUrl); + + void connectSlot(QObject* obj, const char* slot); + + QByteArray downloadedData() const; + +signals: + void downloaded(QByteArray& downloadedData); + +private slots: + + void fileDownloaded(QNetworkReply* pReply); + +private: + + QNetworkAccessManager m_WebCtrl; + +}; + +#endif /* FILEDOWNLOADER_H_ */ -- cgit v1.2.3-55-g7522