mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-08 07:07:05 +02:00
Merge pull request #251 from tomahawk-player/cacheupdates
add genericcache version setting to TomahawkSettings, check for the cach...
This commit is contained in:
@@ -701,9 +701,20 @@ TomahawkSettings::setInfoSystemCacheVersion( uint version )
|
|||||||
uint
|
uint
|
||||||
TomahawkSettings::infoSystemCacheVersion() const
|
TomahawkSettings::infoSystemCacheVersion() const
|
||||||
{
|
{
|
||||||
return value( "infosystemcacheversion", 3 ).toUInt();
|
return value( "infosystemcacheversion", 0 ).toUInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
TomahawkSettings::setGenericCacheVersion( uint version )
|
||||||
|
{
|
||||||
|
setValue( "genericcacheversion", version );
|
||||||
|
}
|
||||||
|
|
||||||
|
uint
|
||||||
|
TomahawkSettings::genericCacheVersion() const
|
||||||
|
{
|
||||||
|
return value( "genericcacheversion", 0 ).toUInt();
|
||||||
|
}
|
||||||
|
|
||||||
QString
|
QString
|
||||||
TomahawkSettings::storageCacheLocation() const
|
TomahawkSettings::storageCacheLocation() const
|
||||||
|
@@ -60,6 +60,9 @@ public:
|
|||||||
uint infoSystemCacheVersion() const;
|
uint infoSystemCacheVersion() const;
|
||||||
void setInfoSystemCacheVersion( uint version );
|
void setInfoSystemCacheVersion( uint version );
|
||||||
|
|
||||||
|
uint genericCacheVersion() const;
|
||||||
|
void setGenericCacheVersion( uint version );
|
||||||
|
|
||||||
bool watchForChanges() const;
|
bool watchForChanges() const;
|
||||||
void setWatchForChanges( bool watch );
|
void setWatchForChanges( bool watch );
|
||||||
|
|
||||||
|
@@ -35,6 +35,7 @@ namespace Tomahawk
|
|||||||
namespace InfoSystem
|
namespace InfoSystem
|
||||||
{
|
{
|
||||||
|
|
||||||
|
const int InfoSystemCache::s_infosystemCacheVersion = 4;
|
||||||
|
|
||||||
InfoSystemCache::InfoSystemCache( QObject* parent )
|
InfoSystemCache::InfoSystemCache( QObject* parent )
|
||||||
: QObject( parent )
|
: QObject( parent )
|
||||||
@@ -42,6 +43,12 @@ InfoSystemCache::InfoSystemCache( QObject* parent )
|
|||||||
{
|
{
|
||||||
tDebug() << Q_FUNC_INFO;
|
tDebug() << Q_FUNC_INFO;
|
||||||
|
|
||||||
|
if ( TomahawkSettings::instance()->infoSystemCacheVersion() < s_infosystemCacheVersion )
|
||||||
|
{
|
||||||
|
TomahawkUtils::removeDirectory( m_cacheBaseDir );
|
||||||
|
TomahawkSettings::instance()->setInfoSystemCacheVersion( s_infosystemCacheVersion );
|
||||||
|
}
|
||||||
|
|
||||||
m_pruneTimer.setInterval( 300000 );
|
m_pruneTimer.setInterval( 300000 );
|
||||||
m_pruneTimer.setSingleShot( false );
|
m_pruneTimer.setSingleShot( false );
|
||||||
connect( &m_pruneTimer, SIGNAL( timeout() ), SLOT( pruneTimerFired() ) );
|
connect( &m_pruneTimer, SIGNAL( timeout() ), SLOT( pruneTimerFired() ) );
|
||||||
|
@@ -54,6 +54,13 @@ private slots:
|
|||||||
void pruneTimerFired();
|
void pruneTimerFired();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
/**
|
||||||
|
* Version number of the infosystem cache.
|
||||||
|
* If you change existing cached data,
|
||||||
|
* increase this number.
|
||||||
|
*/
|
||||||
|
static const int s_infosystemCacheVersion;
|
||||||
|
|
||||||
void notInCache( QObject *receiver, Tomahawk::InfoSystem::InfoStringHash criteria, Tomahawk::InfoSystem::InfoRequestData requestData );
|
void notInCache( QObject *receiver, Tomahawk::InfoSystem::InfoStringHash criteria, Tomahawk::InfoSystem::InfoRequestData requestData );
|
||||||
const QString criteriaMd5( const Tomahawk::InfoSystem::InfoStringHash &criteria, Tomahawk::InfoSystem::InfoType type = Tomahawk::InfoSystem::InfoNoInfo ) const;
|
const QString criteriaMd5( const Tomahawk::InfoSystem::InfoStringHash &criteria, Tomahawk::InfoSystem::InfoType type = Tomahawk::InfoSystem::InfoNoInfo ) const;
|
||||||
|
|
||||||
|
@@ -29,6 +29,7 @@
|
|||||||
using namespace TomahawkUtils;
|
using namespace TomahawkUtils;
|
||||||
|
|
||||||
Cache*Cache::s_instance = 0;
|
Cache*Cache::s_instance = 0;
|
||||||
|
const int Cache::s_cacheVersion = 1;
|
||||||
|
|
||||||
|
|
||||||
Cache* Cache::instance()
|
Cache* Cache::instance()
|
||||||
@@ -45,6 +46,12 @@ Cache::Cache()
|
|||||||
, m_cacheBaseDir( TomahawkSettings::instance()->storageCacheLocation() + "/GenericCache/" )
|
, m_cacheBaseDir( TomahawkSettings::instance()->storageCacheLocation() + "/GenericCache/" )
|
||||||
, m_cacheManifest( m_cacheBaseDir + "cachemanifest.ini", QSettings::IniFormat )
|
, m_cacheManifest( m_cacheBaseDir + "cachemanifest.ini", QSettings::IniFormat )
|
||||||
{
|
{
|
||||||
|
if ( TomahawkSettings::instance()->genericCacheVersion() < s_cacheVersion )
|
||||||
|
{
|
||||||
|
TomahawkUtils::removeDirectory( m_cacheBaseDir );
|
||||||
|
TomahawkSettings::instance()->setGenericCacheVersion( s_cacheVersion );
|
||||||
|
}
|
||||||
|
|
||||||
m_pruneTimer.setInterval( 300000 );
|
m_pruneTimer.setInterval( 300000 );
|
||||||
m_pruneTimer.setSingleShot( false );
|
m_pruneTimer.setSingleShot( false );
|
||||||
connect( &m_pruneTimer, SIGNAL( timeout() ), SLOT( pruneTimerFired() ) );
|
connect( &m_pruneTimer, SIGNAL( timeout() ), SLOT( pruneTimerFired() ) );
|
||||||
|
@@ -26,6 +26,7 @@
|
|||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
#include <QDir>
|
||||||
|
|
||||||
namespace TomahawkUtils
|
namespace TomahawkUtils
|
||||||
{
|
{
|
||||||
@@ -86,6 +87,13 @@ private:
|
|||||||
Cache();
|
Cache();
|
||||||
static Cache* s_instance;
|
static Cache* s_instance;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version number of the cache.
|
||||||
|
* If you change existing cached data,
|
||||||
|
* increase this number.
|
||||||
|
*/
|
||||||
|
static const int s_cacheVersion;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a client to the manifest.
|
* Adds a client to the manifest.
|
||||||
* Does not lock the mutex.
|
* Does not lock the mutex.
|
||||||
|
Reference in New Issue
Block a user