Ignore:
Timestamp:
Feb 11, 2010, 11:19:06 PM (15 years ago)
Author:
Dmitry A. Kuminov
Message:

trunk: Merged in qt 4.6.1 sources.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

  • trunk/demos/browser/networkaccessmanager.cpp

    r2 r561  
    22**
    33** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
    4 ** Contact: Qt Software Information (qt-info@nokia.com)
     4** All rights reserved.
     5** Contact: Nokia Corporation (qt-info@nokia.com)
    56**
    67** This file is part of the demonstration applications of the Qt Toolkit.
     
    2122** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
    2223**
    23 ** In addition, as a special exception, Nokia gives you certain
    24 ** additional rights. These rights are described in the Nokia Qt LGPL
    25 ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
    26 ** package.
     24** In addition, as a special exception, Nokia gives you certain additional
     25** rights.  These rights are described in the Nokia Qt LGPL Exception
     26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
    2727**
    2828** GNU General Public License Usage
     
    3434** met: http://www.gnu.org/copyleft/gpl.html.
    3535**
    36 ** If you are unsure which license is appropriate for your use, please
    37 ** contact the sales department at qt-sales@nokia.com.
     36** If you have questions regarding the use of this file, please contact
     37** Nokia at qt-info@nokia.com.
    3838** $QT_END_LICENSE$
    3939**
     
    5858#include <QtNetwork/QNetworkDiskCache>
    5959#include <QtNetwork/QNetworkProxy>
     60#include <QtNetwork/QNetworkRequest>
    6061#include <QtNetwork/QNetworkReply>
    6162#include <QtNetwork/QSslError>
    6263
    6364NetworkAccessManager::NetworkAccessManager(QObject *parent)
    64     : QNetworkAccessManager(parent)
    65 {
    66     connect(this, SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)),
     65    : QNetworkAccessManager(parent),
     66    requestFinishedCount(0), requestFinishedFromCacheCount(0), requestFinishedPipelinedCount(0),
     67    requestFinishedSecureCount(0)
     68{
     69    connect(this, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)),
    6770            SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*)));
    68     connect(this, SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)),
    69             SLOT(proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*)));
     71    connect(this, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
     72            SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
     73    connect(this, SIGNAL(finished(QNetworkReply*)),
     74            SLOT(requestFinished(QNetworkReply*)));
    7075#ifndef QT_NO_OPENSSL
    71     connect(this, SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)),
    72             SLOT(sslErrors(QNetworkReply*, const QList<QSslError>&)));
     76    connect(this, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)),
     77            SLOT(sslErrors(QNetworkReply*,QList<QSslError>)));
    7378#endif
    7479    loadSettings();
     
    7883    diskCache->setCacheDirectory(location);
    7984    setCache(diskCache);
     85}
     86
     87QNetworkReply* NetworkAccessManager::createRequest(Operation op, const QNetworkRequest & req, QIODevice * outgoingData)
     88{
     89    QNetworkRequest request = req; // copy so we can modify
     90    // this is a temporary hack until we properly use the pipelining flags from QtWebkit
     91    // pipeline everything! :)
     92    request.setAttribute(QNetworkRequest::HttpPipeliningAllowedAttribute, true);
     93    return QNetworkAccessManager::createRequest(op, request, outgoingData);
     94}
     95
     96void NetworkAccessManager::requestFinished(QNetworkReply *reply)
     97{
     98    requestFinishedCount++;
     99
     100    if (reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool() == true)
     101        requestFinishedFromCacheCount++;
     102
     103    if (reply->attribute(QNetworkRequest::HttpPipeliningWasUsedAttribute).toBool() == true)
     104        requestFinishedPipelinedCount++;
     105
     106    if (reply->attribute(QNetworkRequest::ConnectionEncryptedAttribute).toBool() == true)
     107        requestFinishedSecureCount++;
     108
     109    if (requestFinishedCount % 10)
     110        return;
     111
     112    double pctCached = (double(requestFinishedFromCacheCount) * 100.0/ double(requestFinishedCount));
     113    double pctPipelined = (double(requestFinishedPipelinedCount) * 100.0/ double(requestFinishedCount));
     114    double pctSecure = (double(requestFinishedSecureCount) * 100.0/ double(requestFinishedCount));
     115    qDebug("STATS [%lli requests total] [%3.2f%% from cache] [%3.2f%% pipelined] [%3.2f%% SSL/TLS]", requestFinishedCount, pctCached, pctPipelined, pctSecure);
     116
    80117}
    81118
Note: See TracChangeset for help on using the changeset viewer.