diff rdf/PluginRDFIndexer.cpp @ 457:ef14acd6d102

* Add beginnings of capability to search plugins that are not yet installed -- lots more work to do here, though
author Chris Cannam
date Tue, 14 Oct 2008 16:36:35 +0000
parents 64e64e304a12
children 93fb1ebff76b
line wrap: on
line diff
--- a/rdf/PluginRDFIndexer.cpp	Mon Oct 13 13:53:05 2008 +0000
+++ b/rdf/PluginRDFIndexer.cpp	Tue Oct 14 16:36:35 2008 +0000
@@ -20,6 +20,8 @@
 #include "data/fileio/FileSource.h"
 #include "plugin/PluginIdentifier.h"
 
+#include "base/Profiler.h"
+
 #include <vamp-sdk/PluginHostAdapter.h>
 
 #include <QFileInfo>
@@ -93,9 +95,9 @@
 
 PluginRDFIndexer::~PluginRDFIndexer()
 {
-    while (!m_cache.empty()) {
-        delete *m_cache.begin();
-        m_cache.erase(m_cache.begin());
+    while (!m_sources.empty()) {
+        delete *m_sources.begin();
+        m_sources.erase(m_sources.begin());
     }
 }
 
@@ -122,13 +124,7 @@
 
         QString baseUrl = QUrl(uri).toString(QUrl::RemoveFragment);
 
-        FileSource source(baseUrl);
-        if (source.isAvailable()) {
-            source.waitForData();
-            if (indexFile(source.getLocalFilename())) {
-                m_cache.insert(new FileSource(source));
-            }
-        }
+        indexURL(baseUrl);
 
         if (m_uriToIdMap.find(uri) == m_uriToIdMap.end()) {
             m_uriToIdMap[uri] = "";
@@ -175,6 +171,23 @@
 bool
 PluginRDFIndexer::indexURL(QString urlString)
 {
+    Profiler profiler("PluginRDFIndexer::indexURL");
+
+    QString localString = urlString;
+
+    if (FileSource::isRemote(urlString) &&
+        FileSource::canHandleScheme(urlString)) {
+
+        FileSource *source = new FileSource(urlString);
+        if (!source->isAvailable()) {
+            delete source;
+            return false;
+        }
+        source->waitForData();
+        localString = QUrl::fromLocalFile(source->getLocalFilename()).toString();
+        m_sources.insert(source);
+    }
+
 //    cerr << "PluginRDFIndexer::indexURL: url = <" << urlString.toStdString() << ">" << endl;
 
     SimpleSPARQLQuery query
@@ -206,7 +219,7 @@
              "   } "
              " } "
              )
-         .arg(urlString));
+         .arg(localString));
 
     SimpleSPARQLQuery::ResultList results = query.execute();