Mercurial > hg > svcore
comparison rdf/PluginRDFIndexer.cpp @ 467:c9b055f84326
* make use of CachedFile (untested)
author | Chris Cannam |
---|---|
date | Mon, 27 Oct 2008 18:15:20 +0000 |
parents | 2019d89ebcf9 |
children | 0dc158c1a6c9 |
comparison
equal
deleted
inserted
replaced
466:f35bfa88f0b5 | 467:c9b055f84326 |
---|---|
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" | 20 //!!!#include "data/fileio/FileSource.h" |
21 #include "data/fileio/CachedFile.h" | |
21 #include "data/fileio/PlaylistFileReader.h" | 22 #include "data/fileio/PlaylistFileReader.h" |
22 #include "plugin/PluginIdentifier.h" | 23 #include "plugin/PluginIdentifier.h" |
23 | 24 |
24 #include "base/Profiler.h" | 25 #include "base/Profiler.h" |
25 | 26 |
98 } | 99 } |
99 | 100 |
100 PluginRDFIndexer::~PluginRDFIndexer() | 101 PluginRDFIndexer::~PluginRDFIndexer() |
101 { | 102 { |
102 QMutexLocker locker(&m_mutex); | 103 QMutexLocker locker(&m_mutex); |
103 | 104 /*!!! |
104 while (!m_sources.empty()) { | 105 while (!m_sources.empty()) { |
105 delete *m_sources.begin(); | 106 delete *m_sources.begin(); |
106 m_sources.erase(m_sources.begin()); | 107 m_sources.erase(m_sources.begin()); |
107 } | 108 } |
109 */ | |
108 } | 110 } |
109 | 111 |
110 bool | 112 bool |
111 PluginRDFIndexer::indexConfiguredURLs() | 113 PluginRDFIndexer::indexConfiguredURLs() |
112 { | 114 { |
123 QString index = indices[i]; | 125 QString index = indices[i]; |
124 | 126 |
125 std::cerr << "PluginRDFIndexer::indexConfiguredURLs: index url is " | 127 std::cerr << "PluginRDFIndexer::indexConfiguredURLs: index url is " |
126 << index.toStdString() << std::endl; | 128 << index.toStdString() << std::endl; |
127 | 129 |
130 /*!!! | |
128 expireCacheMaybe(index); | 131 expireCacheMaybe(index); |
129 | 132 |
130 FileSource indexSource(index, 0, FileSource::PersistentCache); | 133 FileSource indexSource(index, 0, FileSource::PersistentCache); |
131 if (!indexSource.isAvailable()) continue; | 134 if (!indexSource.isAvailable()) continue; |
132 indexSource.waitForData(); | 135 indexSource.waitForData(); |
136 */ | |
137 | |
138 CachedFile cf(index); | |
139 if (!cf.isOK()) continue; | |
140 | |
141 FileSource indexSource(cf.getLocalFilename()); | |
133 | 142 |
134 PlaylistFileReader reader(indexSource); | 143 PlaylistFileReader reader(indexSource); |
135 if (!reader.isOK()) continue; | 144 if (!reader.isOK()) continue; |
136 | 145 |
137 PlaylistFileReader::Playlist list = reader.load(); | 146 PlaylistFileReader::Playlist list = reader.load(); |
228 { | 237 { |
229 QUrl url = QUrl::fromLocalFile(filepath); | 238 QUrl url = QUrl::fromLocalFile(filepath); |
230 QString urlString = url.toString(); | 239 QString urlString = url.toString(); |
231 return indexURL(urlString); | 240 return indexURL(urlString); |
232 } | 241 } |
233 | 242 /*!!! |
234 void | 243 void |
235 PluginRDFIndexer::expireCacheMaybe(QString urlString) | 244 PluginRDFIndexer::expireCacheMaybe(QString urlString) |
236 { | 245 { |
237 QString cacheFile = FileSource::getPersistentCacheFilePath(urlString); | 246 QString cacheFile = FileSource::getPersistentCacheFilePath(urlString); |
238 | 247 |
264 } | 273 } |
265 } | 274 } |
266 | 275 |
267 settings.endGroup(); | 276 settings.endGroup(); |
268 } | 277 } |
269 | 278 */ |
270 bool | 279 bool |
271 PluginRDFIndexer::indexURL(QString urlString) | 280 PluginRDFIndexer::indexURL(QString urlString) |
272 { | 281 { |
273 Profiler profiler("PluginRDFIndexer::indexURL"); | 282 Profiler profiler("PluginRDFIndexer::indexURL"); |
274 | 283 |
282 FileSource::canHandleScheme(urlString)) { | 291 FileSource::canHandleScheme(urlString)) { |
283 | 292 |
284 //!!! how do we avoid hammering the server if it doesn't have | 293 //!!! how do we avoid hammering the server if it doesn't have |
285 //!!! the file, and/or the network if it can't get through? | 294 //!!! the file, and/or the network if it can't get through? |
286 | 295 |
296 CachedFile cf(urlString); | |
297 if (!cf.isOK()) { | |
298 return false; | |
299 } | |
300 | |
301 localString = cf.getLocalFilename(); | |
302 /*!!! | |
287 expireCacheMaybe(urlString); | 303 expireCacheMaybe(urlString); |
288 | 304 |
289 FileSource *source = new FileSource | 305 FileSource *source = new FileSource |
290 (urlString, 0, FileSource::PersistentCache); | 306 (urlString, 0, FileSource::PersistentCache); |
291 if (!source->isAvailable()) { | 307 if (!source->isAvailable()) { |
293 return false; | 309 return false; |
294 } | 310 } |
295 source->waitForData(); | 311 source->waitForData(); |
296 localString = QUrl::fromLocalFile(source->getLocalFilename()).toString(); | 312 localString = QUrl::fromLocalFile(source->getLocalFilename()).toString(); |
297 m_sources.insert(source); | 313 m_sources.insert(source); |
314 */ | |
298 } | 315 } |
299 | 316 |
300 // cerr << "PluginRDFIndexer::indexURL: url = <" << urlString.toStdString() << ">" << endl; | 317 // cerr << "PluginRDFIndexer::indexURL: url = <" << urlString.toStdString() << ">" << endl; |
301 | 318 |
302 SimpleSPARQLQuery query | 319 SimpleSPARQLQuery query |