diff options
Diffstat (limited to 'WebKit/qt/Api/qwebnetworkinterface_p.h')
| -rw-r--r-- | WebKit/qt/Api/qwebnetworkinterface_p.h | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/WebKit/qt/Api/qwebnetworkinterface_p.h b/WebKit/qt/Api/qwebnetworkinterface_p.h deleted file mode 100644 index aec104b..0000000 --- a/WebKit/qt/Api/qwebnetworkinterface_p.h +++ /dev/null @@ -1,214 +0,0 @@ -/* - Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef QWEBNETWORKINTERFACE_P_H -#define QWEBNETWORKINTERFACE_P_H - -#include "qwebnetworkinterface.h" -#if QT_VERSION < 0x040400 -#include <qthread.h> -#include <qmutex.h> - -namespace WebCore { - struct HostInfo; - class ResourceRequest; -}; -uint qHash(const WebCore::HostInfo &info); -#include <qhash.h> - -namespace WebCore { - class ResourceHandle; -} - -struct QWebNetworkRequestPrivate { - QUrl url; - QHttpRequestHeader httpHeader; - QByteArray postData; - - void init(const WebCore::ResourceRequest &resourceRequest); - void init(const QString &method, const QUrl &url, const WebCore::ResourceRequest *resourceRequest = 0); - void setURL(const QUrl &u); -}; - -class QWebNetworkJobPrivate { -public: - QWebNetworkJobPrivate() - : ref(1) - , resourceHandle(0) - , redirected(false) - , interface(0) - , jobStatus(QWebNetworkJob::JobCreated) - {} - int ref; - - QWebNetworkRequestPrivate request; - QHttpResponseHeader response; - - WebCore::ResourceHandle *resourceHandle; - bool redirected; - - QWebNetworkInterface *interface; - QWebNetworkJob::JobStatus jobStatus; - QString errorString; -}; - -class QWebNetworkManager : public QObject { - Q_OBJECT -public: - enum JobMode { - AsynchronousJob, - SynchronousJob - }; - - static QWebNetworkManager *self(); - - bool add(WebCore::ResourceHandle *resourceHandle, QWebNetworkInterface *interface, JobMode = AsynchronousJob); - void cancel(WebCore::ResourceHandle *resourceHandle); - - void addHttpJob(QWebNetworkJob *job); - void cancelHttpJob(QWebNetworkJob *job); - -protected: - void queueStart(QWebNetworkJob*); - void queueData(QWebNetworkJob*, const QByteArray&); - void queueFinished(QWebNetworkJob*, int errorCode); - -private: - void started(QWebNetworkJob *); - void data(QWebNetworkJob *, const QByteArray &data); - void finished(QWebNetworkJob *, int errorCode); - void doScheduleWork(); - -signals: - void fileRequest(QWebNetworkJob*); - void scheduleWork(); - -private slots: - void httpConnectionClosed(const WebCore::HostInfo &); - void doWork(); - -private: - friend class QWebNetworkInterface; - QWebNetworkManager(); - QHash<WebCore::HostInfo, WebCore::WebCoreHttp *> m_hostMapping; - - struct JobWork { - enum WorkType { - JobStarted, - JobData, - JobFinished - }; - - explicit JobWork(QWebNetworkJob* _job) - : workType(JobStarted) - , errorCode(-1) - , job(_job) - {} - - explicit JobWork(QWebNetworkJob* _job, int _errorCode) - : workType(JobFinished) - , errorCode(_errorCode) - , job(_job) - {} - - explicit JobWork(QWebNetworkJob* _job, const QByteArray& _data) - : workType(JobData) - , errorCode(-1) - , job(_job) - , data(_data) - {} - - const WorkType workType; - int errorCode; - QByteArray data; - QWebNetworkJob* job; - }; - - QMutex m_queueMutex; - bool m_scheduledWork; - QList<JobWork*> m_pendingWork; - QHash<QWebNetworkJob*, int> m_synchronousJobs; -}; - - -namespace WebCore { - - class NetworkLoader; - - struct HostInfo { - HostInfo() {} - HostInfo(const QUrl& url); - QString protocol; - QString host; - int port; - }; - - class WebCoreHttp : public QObject { - Q_OBJECT - public: - WebCoreHttp(QObject* parent, const HostInfo&); - ~WebCoreHttp(); - - void request(QWebNetworkJob* resource); - void cancel(QWebNetworkJob*); - - signals: - void connectionClosed(const WebCore::HostInfo&); - - private slots: - void onResponseHeaderReceived(const QHttpResponseHeader& resp); - void onReadyRead(); - void onRequestFinished(int, bool); - void onDone(bool); - void onStateChanged(int); - void onSslErrors(const QList<QSslError>&); - void onAuthenticationRequired(const QString& hostname, quint16 port, QAuthenticator*); - void onProxyAuthenticationRequired(const QNetworkProxy& proxy, QAuthenticator*); - - void scheduleNextRequest(); - - int getConnection(); - - public: - HostInfo info; - private: - QList<QWebNetworkJob*> m_pendingRequests; - struct HttpConnection { - HttpConnection() : http(0), current(0), id(-1) {} - QHttp* http; - QWebNetworkJob* current; - int id; // the QHttp id - }; - HttpConnection connection[2]; - bool m_inCancel; - }; - -} - -class QWebNetworkInterfacePrivate { -public: - void sendFileData(QWebNetworkJob* job, int statusCode, const QByteArray& data); - void parseDataUrl(QWebNetworkJob* job); - - QWebNetworkInterface* q; -}; - -#endif - -#endif |
