File indexing completed on 2024-04-28 05:26:46
0001 /* 0002 * SPDX-FileCopyrightText: 2017 Aleix Pol Gonzalez <aleixpol@blue-systems.com> 0003 * SPDX-FileCopyrightText: 2017 Jan Grulich <jgrulich@redhat.com> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0006 */ 0007 0008 #include "CachedNetworkAccessManager.h" 0009 0010 #include <QNetworkDiskCache> 0011 #include <QNetworkRequest> 0012 #include <QStandardPaths> 0013 #include <QStorageInfo> 0014 0015 CachedNetworkAccessManager::CachedNetworkAccessManager(const QString &path, QObject *parent) 0016 : QNetworkAccessManager(parent) 0017 { 0018 const QString cacheDir = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QLatin1Char('/') + path; 0019 QNetworkDiskCache *cache = new QNetworkDiskCache(this); 0020 QStorageInfo storageInfo(QStandardPaths::writableLocation(QStandardPaths::CacheLocation)); 0021 cache->setCacheDirectory(cacheDir); 0022 cache->setMaximumCacheSize(storageInfo.bytesTotal() / 1000); 0023 setCache(cache); 0024 0025 setTransferTimeout(); 0026 } 0027 0028 QNetworkReply *CachedNetworkAccessManager::createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData) 0029 { 0030 QNetworkRequest req(request); 0031 req.setAttribute(QNetworkRequest::CacheLoadControlAttribute, QNetworkRequest::PreferCache); 0032 return QNetworkAccessManager::createRequest(op, request, outgoingData); 0033 }