diff --git a/src/network/access/qnetworkaccessmanager.h b/src/network/access/qnetworkaccessmanager.h index c531cf8..7cb66b6 100644 --- a/src/network/access/qnetworkaccessmanager.h +++ b/src/network/access/qnetworkaccessmanager.h @@ -15,8 +15,6 @@ #define QNETWORKACCESSMANAGER_H #include -#include -#include QT_BEGIN_HEADER @@ -26,6 +24,10 @@ QT_MODULE(Network) class QIODevice; class QAuthenticator; +class QByteArray; +template class QList; +class QNetworkCookie; +class QNetworkCookieJar; class QNetworkRequest; class QNetworkReply; class QNetworkProxy; @@ -54,6 +56,9 @@ public: void setProxy(const QNetworkProxy &proxy); #endif + QNetworkCookieJar *cookieJar() const; + void setCookieJar(QNetworkCookieJar *cookieJar); + QNetworkReply *head(const QNetworkRequest &request); QNetworkReply *get(const QNetworkRequest &request); QNetworkReply *post(const QNetworkRequest &request, QIODevice *data); diff --git a/src/network/access/qnetworkrequest.h b/src/network/access/qnetworkrequest.h index 76d29b3..0637382 100644 --- a/src/network/access/qnetworkrequest.h +++ b/src/network/access/qnetworkrequest.h @@ -35,7 +35,9 @@ public: ContentTypeHeader, ContentLengthHeader, LocationHeader, - LastModifiedHeader + LastModifiedHeader, + CookieHeader, + SetCookieHeader }; enum Attribute { HttpStatusCodeAttribute, diff --git a/src/network/access/qnetworkcookie.h b/src/network/access/qnetworkcookie.h new file mode 100644 index 0000000..dd5bd96 --- /dev/null +++ b/src/network/access/qnetworkcookie.h @@ -0,0 +1,104 @@ +/**************************************************************************** +** +** Copyright (C) 1992-$THISYEAR$ $TROLLTECH$. All rights reserved. +** +** This file is part of the $MODULE$ of the Qt Toolkit. +** +** $TROLLTECH_DUAL_LICENSE$ +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +****************************************************************************/ + +#ifndef QNETWORKCOOKIE_H +#define QNETWORKCOOKIE_H + +#include +#include +#include + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Network) + +class QByteArray; +class QDateTime; +class QString; +class QNetworkRequest; +class QNetworkReply; + +class QNetworkCookiePrivate; +class Q_NETWORK_EXPORT QNetworkCookie +{ +public: + enum RawForm { + NameAndValueOnly, + Full + }; + + QNetworkCookie(); + QNetworkCookie(const QNetworkCookie &other); + ~QNetworkCookie(); + QNetworkCookie &operator=(const QNetworkCookie &other); + bool operator==(const QNetworkCookie &other) const; + inline bool operator!=(const QNetworkCookie &other) const + { return !(*this == other); } + + bool isSecure() const; + void setSecure(bool enable); + + bool isSessionCookie() const; + QDateTime expirationDate() const; + void setExpirationDate(const QDateTime &date); + + QString domain() const; + void setDomain(const QString &domain); + + QString path() const; + void setPath(const QString &path); + + QByteArray name() const; + void setName(const QByteArray &cookieName); + + QByteArray value() const; + void setValue(const QByteArray &value); + + QString toString() const; + QByteArray toRawForm(RawForm form) const; + + static QList parseCookie(const QByteArray &cookieString); + +private: + QSharedDataPointer d; + friend class QNetworkCookiePrivate; +}; +Q_DECLARE_METATYPE(QNetworkCookie) +Q_DECLARE_TYPEINFO(QNetworkCookie, Q_MOVABLE_TYPE); +Q_DECLARE_METATYPE(QList) + +class QNetworkCookieJarPrivate; +class Q_NETWORK_EXPORT QNetworkCookieJar +{ +public: + QNetworkCookieJar(); + virtual ~QNetworkCookieJar(); + + virtual QList cookiesForRequest(const QNetworkRequest &request) const; + virtual void setCookiesFromReply(const QList &cookie, const QNetworkReply *reply); + + QList allCookies() const; + void setAllCookies(const QList &cookieList); + +private: + QNetworkCookieJarPrivate * const d; + Q_DISABLE_COPY(QNetworkCookieJar); +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif