18#ifndef QGSNETWORKDISKCACHE_H
19#define QGSNETWORKDISKCACHE_H
25#include <QNetworkDiskCache>
29class QNetworkDiskCache;
33class ExpirableNetworkDiskCache :
public QNetworkDiskCache
38 explicit ExpirableNetworkDiskCache( QObject *parent =
nullptr )
39 : QNetworkDiskCache( parent )
41 qint64 runExpire() {
return QNetworkDiskCache::expire(); }
53class CORE_EXPORT QgsNetworkDiskCache :
public QNetworkDiskCache
121 QNetworkCacheMetaData
metaData(
const QUrl &url )
override;
127 QIODevice *
data(
const QUrl &url )
override;
130 bool remove(
const QUrl &url )
override;
139 void insert( QIODevice *device )
override;
142 QNetworkCacheMetaData
fileMetaData(
const QString &fileName )
const;
152 void clear()
override;
159 explicit QgsNetworkDiskCache( QObject *parent );
161 static ExpirableNetworkDiskCache sDiskCache;
162 static QMutex sDiskCacheMutex;
164 static QHash<QUrl, QVariantMap> sPendingRequestHeaders;
void setCacheDirectory(const QString &cacheDir)
void removePendingRequestForUrl(const QUrl &url) const
Removes a pending (ongoing) request in place for the specified url.
QIODevice * data(const QUrl &url) override
void updateMetaData(const QNetworkCacheMetaData &metaData) override
QNetworkCacheMetaData metaData(const QUrl &url) override
qint64 maximumCacheSize() const
bool hasInvalidMatchForRequest(const QNetworkRequest &request)
Returns true if the cache has a matching but invalid entry for a request.
QNetworkCacheMetaData fileMetaData(const QString &fileName) const
bool hasPendingRequestForUrl(const QUrl &url) const
Returns true if there is a pending (ongoing) request in place for the specified url.
friend class QgsNetworkAccessManager
void insertPendingRequestHeaders(const QUrl &url, const QVariantMap &headers)
Registers the original request headers for a pending request to the specified url.
void insert(QIODevice *device) override
QIODevice * prepare(const QNetworkCacheMetaData &metaData) override
bool remove(const QUrl &url) override
void setMaximumCacheSize(qint64 size)
qint64 cacheSize() const override
QString cacheDirectory() const
static qint64 smartCacheSize(const QString &path)
Returns a smart cache size, in bytes, based on available free space.