diff options
Diffstat (limited to 'WebKit/qt/Api/qwebnetworkinterface.h')
-rw-r--r-- | WebKit/qt/Api/qwebnetworkinterface.h | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/WebKit/qt/Api/qwebnetworkinterface.h b/WebKit/qt/Api/qwebnetworkinterface.h new file mode 100644 index 0000000..b603e37 --- /dev/null +++ b/WebKit/qt/Api/qwebnetworkinterface.h @@ -0,0 +1,173 @@ +/* + 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_H +#define QWEBNETWORKINTERFACE_H + +#include <QtCore/qobject.h> +#include <QtCore/qurl.h> +#include <QtNetwork/qhttp.h> +#include <QtCore/qbytearray.h> + +#include "qwebkitglobal.h" + +#if QT_VERSION < 0x040400 + +class QAuthenticator; +class QNetworkProxy; +class QSslError; +class QWebFrame; +class QWebNetworkJobPrivate; +class QWebNetworkInterface; +class QWebObjectPluginConnector; + +namespace WebCore { + class WebCoreHttp; + class ResourceRequest; + class FrameLoaderClientQt; +} + +struct QWebNetworkRequestPrivate; +class QWEBKIT_EXPORT QWebNetworkRequest +{ +public: + enum Method { + Get, + Post + //Head + }; + + QWebNetworkRequest(); + explicit QWebNetworkRequest(const QUrl &url, Method method = Get, const QByteArray &postData = QByteArray()); + QWebNetworkRequest(const QWebNetworkRequest &other); + + QWebNetworkRequest &operator=(const QWebNetworkRequest &other); + ~QWebNetworkRequest(); + + QUrl url() const; + void setUrl(const QUrl &url); + + QHttpRequestHeader httpHeader() const; + void setHttpHeader(const QHttpRequestHeader &header) const; + + QString httpHeaderField(const QString &key) const; + void setHttpHeaderField(const QString &key, const QString &value); + + QByteArray postData() const; + void setPostData(const QByteArray &data); + +private: + explicit QWebNetworkRequest(const QWebNetworkRequestPrivate &priv); + explicit QWebNetworkRequest(const WebCore::ResourceRequest &request); + friend class QWebNetworkJob; + friend class WebCore::FrameLoaderClientQt; + + QWebNetworkRequestPrivate *d; + friend class QWebObjectPluginConnector; +}; + +class QWEBKIT_EXPORT QWebNetworkJob +{ +public: + + QUrl url() const; + QByteArray postData() const; + QHttpRequestHeader httpHeader() const; + QWebNetworkRequest request() const; + QString errorString() const; + + QHttpResponseHeader response() const; + void setResponse(const QHttpResponseHeader &response); + void setErrorString(const QString&); + + bool cancelled() const; + + void ref(); + bool deref(); + + QWebNetworkInterface *networkInterface() const; + + QWebFrame *frame() const; + +protected: + enum JobStatus { + JobCreated, + JobRecreated, + JobStarted, + JobReceivingData, + JobFinished + }; + + JobStatus status() const; + void setStatus(const JobStatus&); + +private: + QWebNetworkJob(); + ~QWebNetworkJob(); + + friend class QWebNetworkManager; + friend class QWebObjectPluginConnector; + friend class QWebNetworkJobPrivate; + + QWebNetworkJobPrivate *d; +}; + +class QWebNetworkInterfacePrivate; + +class QWEBKIT_EXPORT QWebNetworkInterface : public QObject +{ + Q_OBJECT +public: + QWebNetworkInterface(QObject *parent = 0); + ~QWebNetworkInterface(); + + static void setDefaultInterface(QWebNetworkInterface *defaultInterface); + static QWebNetworkInterface *defaultInterface(); + + virtual void addJob(QWebNetworkJob *job); + virtual void cancelJob(QWebNetworkJob *job); + +protected: + void started(QWebNetworkJob*); + void data(QWebNetworkJob*, const QByteArray &data); + void finished(QWebNetworkJob*, int errorCode); + +signals: + /** + * Signal is emitted when an SSL error occurs. + */ + void sslErrors(QWebFrame *frame, const QUrl& url, const QList<QSslError>& errors, bool *continueAnyway); + /** + * Signal is emitted when network authentication is required. + */ + void authenticate(QWebFrame *frame, const QUrl& url, const QString& hostname, quint16 port, QAuthenticator *auth); + /** + * Signal is emitted when proxy authentication is required. + */ + void authenticateProxy(QWebFrame *frame, const QUrl& url, const QNetworkProxy& proxy, QAuthenticator *auth); + +private: + friend class QWebNetworkInterfacePrivate; + friend class WebCore::WebCoreHttp; + QWebNetworkInterfacePrivate *d; +}; + +#endif + +#endif |