From 5cdc76ad35569d584412a0e2a35e13ae3e61c36b Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Sun, 11 Jan 2015 22:48:42 -0800 Subject: [PATCH] Put cache max size/count as class members --- libraries/networking/src/ResourceCache.cpp | 14 +++++--------- libraries/networking/src/ResourceCache.h | 6 +++--- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/libraries/networking/src/ResourceCache.cpp b/libraries/networking/src/ResourceCache.cpp index 4b769c9a28..962e256e02 100644 --- a/libraries/networking/src/ResourceCache.cpp +++ b/libraries/networking/src/ResourceCache.cpp @@ -73,22 +73,18 @@ QSharedPointer ResourceCache::getResource(const QUrl& url, const QUrl& } void ResourceCache::addUnusedResource(const QSharedPointer& resource) { - static const int BYTES_PER_MEGABYTES = 1024 * 1024; - const int RETAINED_RESOURCE_COUNT = 50; - const int RETAINED_RESOURCE_SIZE = 100 * BYTES_PER_MEGABYTES; - - while (_unusedResourcesTotalBytes + resource->getBytesTotal() > RETAINED_RESOURCE_SIZE && + while (_unusedResourcesSize + resource->getBytesTotal() > _unusedResourcesMaxSize && !_unusedResources.empty()) { // unload the oldest resource QMap >::iterator it = _unusedResources.begin(); - _unusedResourcesTotalBytes -= it.value()->getBytesTotal(); + _unusedResourcesSize -= it.value()->getBytesTotal(); it.value()->setCache(NULL); _unusedResources.erase(it); } - if (_unusedResources.size() > RETAINED_RESOURCE_COUNT) { + if (_unusedResources.size() > _unusedResourcesMaxCount) { // unload the oldest resource QMap >::iterator it = _unusedResources.begin(); it.value()->setCache(NULL); @@ -96,13 +92,13 @@ void ResourceCache::addUnusedResource(const QSharedPointer& resource) } resource->setLRUKey(++_lastLRUKey); _unusedResources.insert(resource->getLRUKey(), resource); - _unusedResourcesTotalBytes += resource->getBytesTotal(); + _unusedResourcesSize += resource->getBytesTotal(); } void ResourceCache::removeUnusedResource(const QSharedPointer& resource) { if (_unusedResources.contains(resource->getLRUKey())) { _unusedResources.remove(resource->getLRUKey()); - _unusedResourcesTotalBytes -= resource->getBytesTotal(); + _unusedResourcesSize -= resource->getBytesTotal(); } } diff --git a/libraries/networking/src/ResourceCache.h b/libraries/networking/src/ResourceCache.h index 0a4121ca5e..ca1a8a04d9 100644 --- a/libraries/networking/src/ResourceCache.h +++ b/libraries/networking/src/ResourceCache.h @@ -45,8 +45,9 @@ public: void refresh(const QUrl& url); protected: - - qint64 _unusedResourcesTotalBytes = 0; + int _unusedResourcesMaxCount = 50; + qint64 _unusedResourcesMaxSize = 100 * 1024 * 1024; + qint64 _unusedResourcesSize = 0; QMap > _unusedResources; /// Loads a resource from the specified URL. @@ -67,7 +68,6 @@ protected: static void requestCompleted(Resource* resource); private: - friend class Resource; QHash > _resources;