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