LeechCraft 0.6.70-16373-g319c272718
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
networkdiskcache.h
Go to the documentation of this file.
1/**********************************************************************
2 * LeechCraft - modular cross-platform feature rich internet client.
3 * Copyright (C) 2006-2014 Georg Rudoy
4 *
5 * Distributed under the Boost Software License, Version 1.0.
6 * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7 **********************************************************************/
8
9#pragma once
10
11#include <QNetworkDiskCache>
12#include <QRecursiveMutex>
13#include <QHash>
14#include <util/sll/util.h>
15#include "networkconfig.h"
16
17namespace LC::Util
18{
32 class UTIL_NETWORK_API NetworkDiskCache : public QNetworkDiskCache
33 {
34 Q_OBJECT
35
36 qint64 CurrentSize_ = -1;
37
38 mutable QRecursiveMutex InsertRemoveMutex_;
39
40 QHash<QIODevice*, QUrl> PendingDev2Url_;
41 QHash<QUrl, QList<QIODevice*>> PendingUrl2Devs_;
42
43 const Util::DefaultScopeGuard GcGuard_;
44 public:
55 explicit NetworkDiskCache (const QString& subpath, QObject *parent = nullptr);
56
59 qint64 cacheSize () const override;
60
63 QIODevice* data (const QUrl& url) override;
64
67 void insert (QIODevice *device) override;
68
71 QNetworkCacheMetaData metaData (const QUrl& url) override;
72
75 QIODevice* prepare (const QNetworkCacheMetaData&) override;
76
79 bool remove (const QUrl& url) override;
80
83 void updateMetaData (const QNetworkCacheMetaData& metaData) override;
84 protected:
87 qint64 expire () override;
88 };
89}
90
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.
detail::ScopeGuard< detail::DefaultScopeGuardDeleter > DefaultScopeGuard
Definition util.h:132
#define UTIL_NETWORK_API