Mercurial > hg > svcore
comparison rdf/PluginRDFIndexer.cpp @ 471:0dc158c1a6c9
* tidy up uses of CachedFile
author | Chris Cannam |
---|---|
date | Tue, 28 Oct 2008 11:38:43 +0000 |
parents | c9b055f84326 |
children | a70dcfed59c1 |
comparison
equal
deleted
inserted
replaced
470:dddd4ab77068 | 471:0dc158c1a6c9 |
---|---|
15 | 15 |
16 #include "PluginRDFIndexer.h" | 16 #include "PluginRDFIndexer.h" |
17 | 17 |
18 #include "SimpleSPARQLQuery.h" | 18 #include "SimpleSPARQLQuery.h" |
19 | 19 |
20 //!!!#include "data/fileio/FileSource.h" | |
21 #include "data/fileio/CachedFile.h" | 20 #include "data/fileio/CachedFile.h" |
21 #include "data/fileio/FileSource.h" | |
22 #include "data/fileio/PlaylistFileReader.h" | 22 #include "data/fileio/PlaylistFileReader.h" |
23 #include "plugin/PluginIdentifier.h" | 23 #include "plugin/PluginIdentifier.h" |
24 | 24 |
25 #include "base/Profiler.h" | 25 #include "base/Profiler.h" |
26 | 26 |
99 } | 99 } |
100 | 100 |
101 PluginRDFIndexer::~PluginRDFIndexer() | 101 PluginRDFIndexer::~PluginRDFIndexer() |
102 { | 102 { |
103 QMutexLocker locker(&m_mutex); | 103 QMutexLocker locker(&m_mutex); |
104 /*!!! | |
105 while (!m_sources.empty()) { | |
106 delete *m_sources.begin(); | |
107 m_sources.erase(m_sources.begin()); | |
108 } | |
109 */ | |
110 } | 104 } |
111 | 105 |
112 bool | 106 bool |
113 PluginRDFIndexer::indexConfiguredURLs() | 107 PluginRDFIndexer::indexConfiguredURLs() |
114 { | 108 { |
125 QString index = indices[i]; | 119 QString index = indices[i]; |
126 | 120 |
127 std::cerr << "PluginRDFIndexer::indexConfiguredURLs: index url is " | 121 std::cerr << "PluginRDFIndexer::indexConfiguredURLs: index url is " |
128 << index.toStdString() << std::endl; | 122 << index.toStdString() << std::endl; |
129 | 123 |
130 /*!!! | |
131 expireCacheMaybe(index); | |
132 | |
133 FileSource indexSource(index, 0, FileSource::PersistentCache); | |
134 if (!indexSource.isAvailable()) continue; | |
135 indexSource.waitForData(); | |
136 */ | |
137 | |
138 CachedFile cf(index); | 124 CachedFile cf(index); |
139 if (!cf.isOK()) continue; | 125 if (!cf.isOK()) continue; |
140 | 126 |
141 FileSource indexSource(cf.getLocalFilename()); | 127 FileSource indexSource(cf.getLocalFilename()); |
142 | 128 |
237 { | 223 { |
238 QUrl url = QUrl::fromLocalFile(filepath); | 224 QUrl url = QUrl::fromLocalFile(filepath); |
239 QString urlString = url.toString(); | 225 QString urlString = url.toString(); |
240 return indexURL(urlString); | 226 return indexURL(urlString); |
241 } | 227 } |
242 /*!!! | 228 |
243 void | |
244 PluginRDFIndexer::expireCacheMaybe(QString urlString) | |
245 { | |
246 QString cacheFile = FileSource::getPersistentCacheFilePath(urlString); | |
247 | |
248 QSettings settings; | |
249 settings.beginGroup("RDF"); | |
250 | |
251 QString key("rdf-expiry-times"); | |
252 | |
253 QMap<QString, QVariant> expiryMap = settings.value(key).toMap(); | |
254 QDateTime lastExpiry = expiryMap[urlString].toDateTime(); | |
255 | |
256 if (!QFileInfo(cacheFile).exists()) { | |
257 expiryMap[urlString] = QDateTime::currentDateTime(); | |
258 settings.setValue(key, expiryMap); | |
259 settings.endGroup(); | |
260 return; | |
261 } | |
262 | |
263 if (!lastExpiry.isValid() || | |
264 (lastExpiry.addDays(2) < QDateTime::currentDateTime())) { | |
265 | |
266 std::cerr << "Expiring old cache file " << cacheFile.toStdString() | |
267 << std::endl; | |
268 | |
269 if (QFile(cacheFile).remove()) { | |
270 | |
271 expiryMap[urlString] = QDateTime::currentDateTime(); | |
272 settings.setValue(key, expiryMap); | |
273 } | |
274 } | |
275 | |
276 settings.endGroup(); | |
277 } | |
278 */ | |
279 bool | 229 bool |
280 PluginRDFIndexer::indexURL(QString urlString) | 230 PluginRDFIndexer::indexURL(QString urlString) |
281 { | 231 { |
282 Profiler profiler("PluginRDFIndexer::indexURL"); | 232 Profiler profiler("PluginRDFIndexer::indexURL"); |
283 | 233 |
287 | 237 |
288 QString localString = urlString; | 238 QString localString = urlString; |
289 | 239 |
290 if (FileSource::isRemote(urlString) && | 240 if (FileSource::isRemote(urlString) && |
291 FileSource::canHandleScheme(urlString)) { | 241 FileSource::canHandleScheme(urlString)) { |
292 | |
293 //!!! how do we avoid hammering the server if it doesn't have | |
294 //!!! the file, and/or the network if it can't get through? | |
295 | 242 |
296 CachedFile cf(urlString); | 243 CachedFile cf(urlString); |
297 if (!cf.isOK()) { | 244 if (!cf.isOK()) { |
298 return false; | 245 return false; |
299 } | 246 } |
300 | 247 |
301 localString = cf.getLocalFilename(); | 248 localString = cf.getLocalFilename(); |
302 /*!!! | |
303 expireCacheMaybe(urlString); | |
304 | |
305 FileSource *source = new FileSource | |
306 (urlString, 0, FileSource::PersistentCache); | |
307 if (!source->isAvailable()) { | |
308 delete source; | |
309 return false; | |
310 } | |
311 source->waitForData(); | |
312 localString = QUrl::fromLocalFile(source->getLocalFilename()).toString(); | |
313 m_sources.insert(source); | |
314 */ | |
315 } | 249 } |
316 | 250 |
317 // cerr << "PluginRDFIndexer::indexURL: url = <" << urlString.toStdString() << ">" << endl; | 251 // cerr << "PluginRDFIndexer::indexURL: url = <" << urlString.toStdString() << ">" << endl; |
318 | 252 |
319 SimpleSPARQLQuery query | 253 SimpleSPARQLQuery query |