1 /**************************************************************************** |
1 /**************************************************************************** |
2 ** |
2 ** |
3 ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). |
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). |
4 ** All rights reserved. |
4 ** All rights reserved. |
5 ** Contact: Nokia Corporation (qt-info@nokia.com) |
5 ** Contact: Nokia Corporation (qt-info@nokia.com) |
6 ** |
6 ** |
7 ** This file is part of the QtNetwork module of the Qt Toolkit. |
7 ** This file is part of the QtNetwork module of the Qt Toolkit. |
8 ** |
8 ** |
55 |
55 |
56 #include "qnetworkreply.h" |
56 #include "qnetworkreply.h" |
57 #include "qnetworkreply_p.h" |
57 #include "qnetworkreply_p.h" |
58 #include "qnetworkaccessmanager.h" |
58 #include "qnetworkaccessmanager.h" |
59 #include <QFile> |
59 #include <QFile> |
|
60 #include <QAbstractFileEngine> |
60 |
61 |
61 QT_BEGIN_NAMESPACE |
62 QT_BEGIN_NAMESPACE |
62 |
63 |
63 |
64 |
64 class QFileNetworkReplyPrivate; |
65 class QFileNetworkReplyPrivate; |
65 class QFileNetworkReply: public QNetworkReply |
66 class QFileNetworkReply: public QNetworkReply |
66 { |
67 { |
67 Q_OBJECT |
68 Q_OBJECT |
68 public: |
69 public: |
69 QFileNetworkReply(QObject *parent, const QNetworkRequest &req); |
70 QFileNetworkReply(QObject *parent, const QNetworkRequest &req, const QNetworkAccessManager::Operation op); |
70 ~QFileNetworkReply(); |
71 ~QFileNetworkReply(); |
71 virtual void abort(); |
72 virtual void abort(); |
72 |
73 |
73 // reimplemented from QNetworkReply |
74 // reimplemented from QNetworkReply |
74 virtual void close(); |
75 virtual void close(); |
75 virtual qint64 bytesAvailable() const; |
76 virtual qint64 bytesAvailable() const; |
76 virtual bool isSequential () const; |
77 virtual bool isSequential () const; |
77 qint64 size() const; |
78 qint64 size() const; |
78 |
79 |
79 |
|
80 virtual qint64 readData(char *data, qint64 maxlen); |
80 virtual qint64 readData(char *data, qint64 maxlen); |
81 |
81 |
82 Q_DECLARE_PRIVATE(QFileNetworkReply) |
82 Q_DECLARE_PRIVATE(QFileNetworkReply) |
83 Q_PRIVATE_SLOT(d_func(), void _q_startOperation()) |
|
84 |
|
85 }; |
83 }; |
86 |
84 |
87 class QFileNetworkReplyPrivate: public QNetworkReplyPrivate |
85 class QFileNetworkReplyPrivate: public QNetworkReplyPrivate |
88 { |
86 { |
89 public: |
87 public: |
90 QFileNetworkReplyPrivate(); |
88 QFileNetworkReplyPrivate(); |
|
89 ~QFileNetworkReplyPrivate(); |
91 |
90 |
92 QFile realFile; |
91 QAbstractFileEngine *fileEngine; |
93 qint64 realFileSize; |
92 qint64 fileSize; |
94 |
93 qint64 filePos; |
95 void _q_startOperation(); |
|
96 |
94 |
97 virtual bool isFinished() const; |
95 virtual bool isFinished() const; |
98 void doFinished(); |
|
99 bool finished; |
|
100 |
|
101 |
96 |
102 Q_DECLARE_PUBLIC(QFileNetworkReply) |
97 Q_DECLARE_PUBLIC(QFileNetworkReply) |
103 }; |
98 }; |
104 |
99 |
105 QT_END_NAMESPACE |
100 QT_END_NAMESPACE |