~george-edison55/twistload/trunk

« back to all changes in this revision

Viewing changes to src/download/fragment.cpp

  • Committer: Nathan Osman
  • Date: 2017-07-20 22:27:49 UTC
  • Revision ID: git-v1:3a5973a1732623617dcfc9db65c7ede7dcfde50b
Update Fragment class.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
#include <QNetworkAccessManager>
26
26
#include <QNetworkReply>
27
27
#include <QNetworkRequest>
 
28
#include <QUrl>
28
29
 
29
30
#include "fragment.h"
30
31
 
31
 
Fragment::Fragment(QNetworkAccessManager *manager, const QUrl &url,
 
32
Fragment::Fragment(QNetworkAccessManager *manager, const QString &url,
32
33
                   qint64 start, qint64 end)
33
 
    : mOffset(start)
34
 
{
35
 
    QNetworkRequest request(url);
36
 
    request.setRawHeader("Range", QString("bytes=%1-%2").arg(start).arg(end).toUtf8());
37
 
    mReply = manager->get(request);
38
 
 
 
34
    : mManager(manager),
 
35
      mRequest(QUrl(url)),
 
36
      mReply(nullptr),
 
37
      mOffset(start),
 
38
      mEnd(end)
 
39
{
 
40
}
 
41
 
 
42
Fragment::~Fragment()
 
43
{
 
44
    if (mReply) {
 
45
        mReply->deleteLater();
 
46
    }
 
47
}
 
48
 
 
49
void Fragment::start()
 
50
{
 
51
    QString range = QString("bytes=%1-%2").arg(mOffset).arg(mEnd);
 
52
    mRequest.setRawHeader("Range", range.toUtf8());
 
53
    mReply = mManager->get(mRequest);
39
54
    connect(mReply, &QNetworkReply::readyRead, this, &Fragment::onReadyRead);
40
55
    connect(mReply, static_cast<void(QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error), this, &Fragment::onError);
41
56
    connect(mReply, &QNetworkReply::finished, this, &Fragment::finished);