Пример #1
0
QNetworkDiskCache* FileServer::cache(const QString &cacheDir) {
    QNetworkAccessManager *manager = networkAccessManager();
    QNetworkDiskCache *dc = qobject_cast<QNetworkDiskCache*>(manager->cache());
    
    if (!dc) {
        dc = new QNetworkDiskCache(manager);
        manager->setCache(dc);
    }

    if (m_replies.isEmpty()) {
        dc->setCacheDirectory(cacheDir);
    }

    return dc;
}
bool ResourceHandle::willLoadFromCache(ResourceRequest& request, Frame* frame)
{
    if (!frame)
        return false;

    QNetworkAccessManager* manager = QWebFramePrivate::kit(frame)->page()->networkAccessManager();
    QAbstractNetworkCache* cache = manager->cache();

    if (!cache)
        return false;

    QNetworkCacheMetaData data = cache->metaData(request.url());
    if (data.isValid()) {
        request.setCachePolicy(ReturnCacheDataDontLoad);
        return true;
    }

    return false;
}
bool ResourceHandle::willLoadFromCache(ResourceRequest& request, Frame* frame)
{
    if (!frame)
        return false;

    QNetworkAccessManager* manager = 0;
    QAbstractNetworkCache* cache = 0;
    if (frame->loader()->networkingContext()) {
        manager = frame->loader()->networkingContext()->networkAccessManager();
        cache = manager->cache();
    }

    if (!cache)
        return false;

    QNetworkCacheMetaData data = cache->metaData(request.url());
    if (data.isValid()) {
        request.setCachePolicy(ReturnCacheDataDontLoad);
        return true;
    }

    return false;
}