##// END OF EJS Templates
Amda provider (2)...
Alexandre Leroux -
r379:0abce98e1e41
parent child
Show More
@@ -29,6 +29,8 private:
29 29
30 30 private slots:
31 31 void httpFinished() noexcept;
32 void httpDownloadFinished() noexcept;
33 void httpDownloadReadyRead() noexcept;
32 34 };
33 35
34 36 #endif // SCIQLOP_AMDAPROVIDER_H
@@ -3,6 +3,7
3 3
4 4 #include <QNetworkAccessManager>
5 5 #include <QNetworkReply>
6 #include <QTemporaryFile>
6 7
7 8 Q_LOGGING_CATEGORY(LOG_AmdaProvider, "AmdaProvider")
8 9
@@ -74,5 +75,49 void AmdaProvider::retrieveData(QUuid token, const DataProviderParameters &param
74 75
75 76 void AmdaProvider::httpFinished() noexcept
76 77 {
77 /// @todo ALX
78 // ////////////////////// //
79 // Gets download file url //
80 // ////////////////////// //
81
82 auto downloadFileUrl = QUrl{QString{impl->m_Reply->readAll()}};
83
84 // ///////////////////////////////////// //
85 // Executes request for downloading file //
86 // ///////////////////////////////////// //
87
88 // Deletes old reply
89 impl->m_Reply->deleteLater();
90 impl->m_Reply = nullptr;
91
92 // Creates destination file
93 impl->m_File = std::make_unique<QTemporaryFile>();
94 if (impl->m_File->open()) {
95 qCDebug(LOG_AmdaProvider()) << "Temp file: " << impl->m_File->fileName();
96
97 // Executes request
98 impl->m_AccessManager = std::make_unique<QNetworkAccessManager>();
99 impl->m_Reply = impl->m_AccessManager->get(QNetworkRequest{downloadFileUrl});
100 connect(impl->m_Reply, &QNetworkReply::finished, this,
101 &AmdaProvider::httpDownloadReadyRead);
102 connect(impl->m_Reply, &QNetworkReply::finished, this, &AmdaProvider::httpDownloadFinished);
103 }
104 }
105
106 void AmdaProvider::httpDownloadFinished() noexcept
107 {
108 if (impl->m_File) {
109 impl->m_File->close();
110 impl->m_File = nullptr;
111 }
112
113 // Deletes reply
114 impl->m_Reply->deleteLater();
115 impl->m_Reply = nullptr;
116 }
117
118 void AmdaProvider::httpDownloadReadyRead() noexcept
119 {
120 if (impl->m_File) {
121 impl->m_File->write(impl->m_Reply->readAll());
122 }
78 123 }
General Comments 0
You need to be logged in to leave comments. Login now