12#include <QMutexLocker>
28 : QNetworkDiskCache (parent)
45 return QNetworkDiskCache::data (
url);
51 if (!PendingDev2Url_.contains (
device))
54 <<
"stall device detected";
58 PendingUrl2Devs_ [PendingDev2Url_.take (
device)].removeAll (
device);
60 CurrentSize_ +=
device->size ();
61 QNetworkDiskCache::insert (
device);
67 return QNetworkDiskCache::metaData (
url);
73 const auto dev = QNetworkDiskCache::prepare (
metadata);
82 for (
const auto dev : PendingUrl2Devs_.take (
url))
83 PendingDev2Url_.remove (
dev);
84 return QNetworkDiskCache::remove (
url);
90 QNetworkDiskCache::updateMetaData (
metaData);
Garbage collection for a set of network disk caches.
static NetworkDiskCacheGC & Instance()
Returns a single global instance of the GC manager.
qint64 cacheSize() const override
Reimplemented from QNetworkDiskCache.
QIODevice * data(const QUrl &url) override
Reimplemented from QNetworkDiskCache.
bool remove(const QUrl &url) override
Reimplemented from QNetworkDiskCache.
void updateMetaData(const QNetworkCacheMetaData &metaData) override
Reimplemented from QNetworkDiskCache.
qint64 expire() override
Reimplemented from QNetworkDiskCache.
NetworkDiskCache(const QString &subpath, QObject *parent=nullptr)
Constructs the new disk cache.
QNetworkCacheMetaData metaData(const QUrl &url) override
Reimplemented from QNetworkDiskCache.
void insert(QIODevice *device) override
Reimplemented from QNetworkDiskCache.
QIODevice * prepare(const QNetworkCacheMetaData &) override
Reimplemented from QNetworkDiskCache.
Container< T > Filter(const Container< T > &c, F f)
@ Cache
Cache for volatile data.
QDir GetUserDir(UserDir dir, const QString &subpath)