History

move static members of ResourceManager into DependencyManager

ZappoMan committed 11 years ago

Commit 4061e141 parent fe3f01b3 files · +39 −14Browse files

Showing the changes to libraries/networking/src/ResourceCache.cpp (1 of 3 files). Show all

Unified · Split

libraries/networking/src/ResourceCache.cpp+11−10
@@ -112,27 +112,31 @@ void ResourceCache::reserveUnusedResource(qint64 resourceSize) { · 111 unmodified lines
112}112}
113 113
114void ResourceCache::attemptRequest(Resource* resource) {114void ResourceCache::attemptRequest(Resource* resource) {
115 auto sharedItems = DependencyManager::get<ResouceCacheSharedItems>();
115 if (_requestLimit <= 0) {116 if (_requestLimit <= 0) {
116 // wait until a slot becomes available117 // wait until a slot becomes available
117 _pendingRequests.append(resource);118 sharedItems->_pendingRequests.append(resource);
118 return;119 return;
119 }120 }
120 _requestLimit--;121 _requestLimit--;
121 _loadingRequests.append(resource);122 sharedItems->_loadingRequests.append(resource);
122 resource->makeRequest();123 resource->makeRequest();
123}124}
124 125
125void ResourceCache::requestCompleted(Resource* resource) {126void ResourceCache::requestCompleted(Resource* resource) {
126 _loadingRequests.removeOne(resource);127
128 auto sharedItems = DependencyManager::get<ResouceCacheSharedItems>();
129 sharedItems->_loadingRequests.removeOne(resource);
127 _requestLimit++;130 _requestLimit++;
128 131
129 // look for the highest priority pending request132 // look for the highest priority pending request
130 int highestIndex = -1;133 int highestIndex = -1;
131 float highestPriority = -FLT_MAX;134 float highestPriority = -FLT_MAX;
132 for (int i = 0; i < _pendingRequests.size(); ) {135 int pendingRequests = sharedItems->_pendingRequests.size();
133 Resource* resource = _pendingRequests.at(i).data();136 for (int i = 0; i < pendingRequests; ) {
137 Resource* resource = sharedItems->_pendingRequests.at(i).data();
134 if (!resource) {138 if (!resource) {
135 _pendingRequests.removeAt(i);139 sharedItems->_pendingRequests.removeAt(i);
136 continue;140 continue;
137 }141 }
138 float priority = resource->getLoadPriority();142 float priority = resource->getLoadPriority();
@@ -143,16 +147,13 @@ void ResourceCache::requestCompleted(Resource* resource) { · 4 unmodified lines
143 i++;147 i++;
144 }148 }
145 if (highestIndex >= 0) {149 if (highestIndex >= 0) {
146 attemptRequest(_pendingRequests.takeAt(highestIndex));150 attemptRequest(sharedItems->_pendingRequests.takeAt(highestIndex));
147 }151 }
148}152}
149 153
150const int DEFAULT_REQUEST_LIMIT = 10;154const int DEFAULT_REQUEST_LIMIT = 10;
151int ResourceCache::_requestLimit = DEFAULT_REQUEST_LIMIT;155int ResourceCache::_requestLimit = DEFAULT_REQUEST_LIMIT;
152 156
153QList<QPointer<Resource> > ResourceCache::_pendingRequests;
154QList<Resource*> ResourceCache::_loadingRequests;
155
156Resource::Resource(const QUrl& url, bool delayLoad) :157Resource::Resource(const QUrl& url, bool delayLoad) :
157 _url(url),158 _url(url),
158 _request(url) {159 _request(url) {

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t