QNetworkReplyHandler.h [plain text]
#ifndef QNETWORKREPLYHANDLER_H
#define QNETWORKREPLYHANDLER_H
#include <QObject>
#if QT_VERSION >= 0x040400
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include "FormData.h"
class QFile;
class QNetworkReply;
namespace WebCore {
class ResourceHandle;
class QNetworkReplyHandler : public QObject
{
Q_OBJECT
public:
QNetworkReplyHandler(ResourceHandle *handle);
QNetworkReply* reply() const { return m_reply; }
void abort();
QNetworkReply *release();
private slots:
void finish();
void sendResponseIfNeeded();
void forwardData();
private:
void start();
QNetworkReply* m_reply;
ResourceHandle* m_resourceHandle;
bool m_redirected;
bool m_responseSent;
QNetworkAccessManager::Operation m_method;
QNetworkRequest m_request;
};
class FormDataIODevice : public QIODevice {
Q_OBJECT
public:
FormDataIODevice(FormData*);
~FormDataIODevice();
void setParent(QNetworkReply*);
bool isSequential() const;
protected:
qint64 readData(char*, qint64);
qint64 writeData(const char*, qint64);
private Q_SLOTS:
void slotFinished();
private:
void moveToNextElement();
private:
Vector<FormDataElement> m_formElements;
QFile* m_currentFile;
qint64 m_currentDelta;
};
}
#endif
#endif // QNETWORKREPLYHANDLER_H