LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
LC::Util::NetworkDiskCache Class Reference

A thread-safe garbage-collected network disk cache. More...

#include "networkdiskcache.h"

+ Inheritance diagram for LC::Util::NetworkDiskCache:
+ Collaboration diagram for LC::Util::NetworkDiskCache:

Public Member Functions

 NetworkDiskCache (const QString &subpath, QObject *parent=nullptr)
 Constructs the new disk cache. More...
 
qint64 cacheSize () const override
 Reimplemented from QNetworkDiskCache. More...
 
QIODevice * data (const QUrl &url) override
 Reimplemented from QNetworkDiskCache. More...
 
void insert (QIODevice *device) override
 Reimplemented from QNetworkDiskCache. More...
 
QNetworkCacheMetaData metaData (const QUrl &url) override
 Reimplemented from QNetworkDiskCache. More...
 
QIODevice * prepare (const QNetworkCacheMetaData &) override
 Reimplemented from QNetworkDiskCache. More...
 
bool remove (const QUrl &url) override
 Reimplemented from QNetworkDiskCache. More...
 
void updateMetaData (const QNetworkCacheMetaData &metaData) override
 Reimplemented from QNetworkDiskCache. More...
 

Protected Member Functions

qint64 expire () override
 Reimplemented from QNetworkDiskCache. More...
 

Detailed Description

A thread-safe garbage-collected network disk cache.

This class is thread-safe unlike the original QNetworkDiskCache, thus it can be used from multiple threads simultaneously.

Also, old cache data is automatically removed from the cache in a background thread without blocking. The garbage collection can be also triggered manually via the collectGarbage() slot.

The garbage is collected until cache takes 90% of its maximum size.

Definition at line 38 of file networkdiskcache.h.

Constructor & Destructor Documentation

◆ NetworkDiskCache()

LC::Util::NetworkDiskCache::NetworkDiskCache ( const QString &  subpath,
QObject *  parent = nullptr 
)
explicit

Constructs the new disk cache.

The cache uses a subdirectory subpath in the network directory of the user cache location.

Parameters
[in]subpathThe subpath in cache user location.
[in]parentThe parent object of this cache.
See also
GetUserDir(), UserDir::Cache.

Definition at line 33 of file networkdiskcache.cpp.

Member Function Documentation

◆ cacheSize()

qint64 LC::Util::NetworkDiskCache::cacheSize ( ) const
override

Reimplemented from QNetworkDiskCache.

Definition at line 41 of file networkdiskcache.cpp.

◆ data()

QIODevice * LC::Util::NetworkDiskCache::data ( const QUrl &  url)
override

Reimplemented from QNetworkDiskCache.

Definition at line 46 of file networkdiskcache.cpp.

◆ expire()

qint64 LC::Util::NetworkDiskCache::expire ( )
overrideprotected

Reimplemented from QNetworkDiskCache.

Definition at line 97 of file networkdiskcache.cpp.

◆ insert()

void LC::Util::NetworkDiskCache::insert ( QIODevice *  device)
override

Reimplemented from QNetworkDiskCache.

Definition at line 52 of file networkdiskcache.cpp.

◆ metaData()

QNetworkCacheMetaData LC::Util::NetworkDiskCache::metaData ( const QUrl &  url)
override

Reimplemented from QNetworkDiskCache.

Definition at line 68 of file networkdiskcache.cpp.

◆ prepare()

QIODevice * LC::Util::NetworkDiskCache::prepare ( const QNetworkCacheMetaData &  metadata)
override

Reimplemented from QNetworkDiskCache.

Definition at line 74 of file networkdiskcache.cpp.

◆ remove()

bool LC::Util::NetworkDiskCache::remove ( const QUrl &  url)
override

Reimplemented from QNetworkDiskCache.

Definition at line 83 of file networkdiskcache.cpp.

◆ updateMetaData()

void LC::Util::NetworkDiskCache::updateMetaData ( const QNetworkCacheMetaData &  metaData)
override

Reimplemented from QNetworkDiskCache.

Definition at line 91 of file networkdiskcache.cpp.


The documentation for this class was generated from the following files: