⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kcookiejar.h

📁 将konqueror浏览器移植到ARM9 2410中
💻 H
字号:
/*    This file is part of the KDE File Manager    Copyright (C) 1998 Waldo Bastian (bastian@kde.org)    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU General Public License    version 2 as published by the Free Software Foundation.    This software 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    General Public License for more details.    You should have received a copy of the GNU General Public License    along with this library; see the file COPYING. If not, write to    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,    Boston, MA 02111-1307, USA.*///----------------------------------------------------------------------------//// KDE File Manager -- HTTP Cookies// $Id: kcookiejar.h,v 1.21.2.1 2001/09/08 22:03:49 adawit Exp $#ifndef KCOOKIEJAR_H#define KCOOKIEJAR_H#include <qstring.h>#include <qstringlist.h>#include <qdict.h>#include <qlist.h>#include <time.h>class KConfig;class KCookieJar;class KHttpCookie;class KHttpCookieList;typedef KHttpCookie *KHttpCookiePtr;enum KCookieAdvice{    KCookieDunno=0,    KCookieAccept,    KCookieReject,    KCookieAsk};class KHttpCookie{    friend class KCookieJar;    friend class KHttpCookieList;protected:    QString mHost;    QString mDomain;    QString mPath;    QString mName;    QString mValue;    time_t  mExpireDate;    int     mProtocolVersion;    long    mWindowId;    bool    mSecure;    KHttpCookiePtr nextCookie;    QString cookieStr(bool useDOMFormat);public:    KHttpCookie(const QString &_host=QString::null,                const QString &_domain=QString::null,                const QString &_path=QString::null,                const QString &_name=QString::null,                const QString &_value=QString::null,                time_t _expireDate=0,                int _protocolVersion=0,                bool _secure = false);    QString domain(void) { return mDomain; }    QString host(void) { return mHost; }    QString path(void) { return mPath; }    QString name(void) { return mName; }    QString value(void) { return mValue; }    long    windowId(void) { return mWindowId; }    void    fixDomain(const QString &domain) { mDomain = domain; }    time_t  expireDate(void) { return mExpireDate; }    int     protocolVersion(void) { return mProtocolVersion; }    bool    isSecure(void) { return mSecure; }    bool    isExpired(time_t currentDate);    bool    match(const QString &fqdn, const QStringList &domainList, const QString &path);    KHttpCookiePtr next() { return nextCookie; }};class KHttpCookieList : public QList<KHttpCookie>{public:    KHttpCookieList() : QList<KHttpCookie>(), advice( KCookieDunno )    { setAutoDelete(true); }    virtual ~KHttpCookieList() { }    virtual int compareItems( void * item1, void * item2);    KCookieAdvice getAdvice(void) { return advice; }    void setAdvice(KCookieAdvice _advice) { advice = _advice; }private:    KCookieAdvice advice;};class KCookieJar{public:    /**     * Constructs a new cookie jar     *     * One jar should be enough for all cookies.     */    KCookieJar();    /**     * Destructs the cookie jar     *     * Poor little cookies, they will all be eaten by the cookie monster!     */    ~KCookieJar();    /**     * Returns whether the cookiejar has been changed     */    bool changed() { return cookiesChanged || configChanged; }    /**     * Store all the cookies in a safe(?) place     */    bool saveCookies(const QString &_filename);    /**     * Load all the cookies from file and add them to the cookie jar.     */    bool loadCookies(const QString &_filename);    /**     * Save the cookie configuration     */    void saveConfig(KConfig *_config);    /**     * Load the cookie configuration     */    void loadConfig(KConfig *_config, bool reparse = false);    /**     * Looks for cookies in the cookie jar which are appropriate for _url.     * Returned is a string containing all appropriate cookies in a format     * which can be added to a HTTP-header without any additional processing.     *     * If @p useDOMFormat is true, the string is formatted in a format     * in compliance with the DOM standard.     */    QString findCookies(const QString &_url, bool useDOMFormat);    /**     * This function parses cookie_headers and returns a linked list of     * valid KHttpCookie objects for all cookies found in cookie_headers.     * If no cookies could be found 0 is returned.     *     * cookie_headers should be a concatenation of all lines of a HTTP-header     * which start with "Set-Cookie". The lines should be separated by '\n's.     */    KHttpCookiePtr makeCookies(const QString &_url, const QCString &cookie_headers, long windowId);    /**     * This function parses cookie_headers and returns a linked list of     * valid KHttpCookie objects for all cookies found in cookie_headers.     * If no cookies could be found 0 is returned.     *     * cookie_domstr should be a concatenation of "name=value" pairs, seperated     * by a semicolon ';'.     */    KHttpCookiePtr makeDOMCookies(const QString &_url, const QCString &cookie_domstr, long windowId);    /**     * This function hands a KHttpCookie object over to the cookie jar.     *     * On return cookiePtr is set to 0.     */    void addCookie(KHttpCookiePtr &cookiePtr);    /**     * This function advices whether a single KHttpCookie object should     * be added to the cookie jar.     *     * Possible return values are:     *     - KCookieAccept, the cookie should be added     *     - KCookieReject, the cookie should not be added     *     - KCookieAsk, the user should decide what to do     */    KCookieAdvice cookieAdvice(KHttpCookiePtr cookiePtr);    /**     * This function gets the advice for all cookies originating from     * _domain.     *     *     - KCookieDunno, no specific advice for _domain     *     - KCookieAccept, accept all cookies for _domain     *     - KCookieReject, reject all cookies for _domain     *     - KCookieAsk, the user decides what to do with cookies for _domain     */    KCookieAdvice getDomainAdvice(const QString &_domain);    /**     * This function sets the advice for all cookies originating from     * _domain.     *     * _advice can have the following values:     *     - KCookieDunno, no specific advice for _domain     *     - KCookieAccept, accept all cookies for _domain     *     - KCookieReject, reject all cookies for _domain     *     - KCookieAsk, the user decides what to do with cookies for _domain     */    void setDomainAdvice(const QString &_domain, KCookieAdvice _advice);    /**     * This function sets the advice for all cookies originating from     * the same domain as _cookie     *     * _advice can have the following values:     *     - KCookieDunno, no specific advice for _domain     *     - KCookieAccept, accept all cookies for _domain     *     - KCookieReject, reject all cookies for _domain     *     - KCookieAsk, the user decides what to do with cookies for _domain     */    void setDomainAdvice(KHttpCookiePtr _cookie, KCookieAdvice _advice);    /**     * This function sets the global advice for cookies     *     * _advice can have the following values:     *     - KCookieAccept, accept cookies     *     - KCookieReject, reject cookies     *     - KCookieAsk, the user decides what to do with cookies     *     * The global advice is used if the domain has no advice set.     */    void setGlobalAdvice(KCookieAdvice _advice);    /**     * Get a list of all domains known to the cookie jar.     * A domain is known to the cookie jar if:     *     - It has a cookie originating from the domain     *     - It has a specific advice set for the domain     */    const QStringList& getDomainList();    /**     * Get a list of all cookies in the cookie jar originating from _domain.     */    const KHttpCookieList *getCookieList(const QString & _domain,                                         const QString& _fqdn );    /**     * Remove & delete a cookie from the jar.     *     * cookiePtr should be one of the entries in a KHttpCookieList.     * Update your KHttpCookieList by calling getCookieList after     * calling this function.     */    void eatCookie(KHttpCookiePtr cookiePtr);    /**     * Remove & delete all cookies for @p domain.     */    void eatCookiesForDomain(const QString &domain);    /**     * Remove & delete all cookies     */    void eatAllCookies();    /**     * Removes all end of session cookies set by the     * session @p windId.     */    void eatSessionCookies( int windId );    /**     * Removes all end of session cookies set by the     * session @p windId.     */    void eatSessionCookies( const QString& fqdn, int windId, bool isFQDN = true );    /**     * Parses _url and returns the FQDN (_fqdn) and path (_path).     */    static bool parseURL(const QString &_url,                         QString &_fqdn,                         QString &_path);    /**     * Returns a list of domains (_domainList) relevant for this host.     */    static void extractDomains(const QString &_fqdn,                               QStringList &_domainList);    static QString adviceToStr(KCookieAdvice _advice);    static KCookieAdvice strToAdvice(const QString &_str);    // Save this in the config file...    int defaultRadioButton; // 0 = This cookie, 1 = domain, 2 = all cookies    bool showCookieDetails; // true, falseprotected:    QDict<KHttpCookieList> cookieDomains;    QStringList domainList;    KCookieAdvice globalAdvice;    bool configChanged;    bool cookiesChanged;};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -