annotate rdf/PluginRDFDescription.h @ 489:82ab61fa9223

* Reorganise our sparql queries on the basis that Redland must be available, not only optional. So for anything querying the pool of data about plugins, we use a single datastore and model which is initialised at the outset by PluginRDFIndexer and then queried directly; for anything that "reads from a file" (e.g. loading annotations) we query directly using Rasqal, going to the datastore when we need additional plugin-related information. This may improve performance, but mostly it simplifies the code and fixes a serious issue with RDF import in the previous versions (namely that multiple sequential RDF imports would end up sharing the same RDF data pool!)
author Chris Cannam
date Fri, 21 Nov 2008 16:12:29 +0000
parents 0dc158c1a6c9
children 81963c51b488
rev   line source
Chris@439 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@439 2
Chris@439 3 /*
Chris@439 4 Sonic Visualiser
Chris@439 5 An audio file viewer and annotation editor.
Chris@439 6 Centre for Digital Music, Queen Mary, University of London.
Chris@439 7 This file copyright 2008 QMUL.
Chris@439 8
Chris@439 9 This program is free software; you can redistribute it and/or
Chris@439 10 modify it under the terms of the GNU General Public License as
Chris@439 11 published by the Free Software Foundation; either version 2 of the
Chris@439 12 License, or (at your option) any later version. See the file
Chris@439 13 COPYING included with this distribution for more information.
Chris@439 14 */
Chris@439 15
Chris@439 16 #ifndef _PLUGIN_RDF_DESCRIPTION_H_
Chris@439 17 #define _PLUGIN_RDF_DESCRIPTION_H_
Chris@439 18
Chris@439 19 #include <QString>
Chris@457 20 #include <QStringList>
Chris@439 21 #include <map>
Chris@439 22
Chris@439 23 class PluginRDFDescription
Chris@439 24 {
Chris@439 25 public:
Chris@439 26 PluginRDFDescription() : m_haveDescription(false) { }
Chris@439 27 PluginRDFDescription(QString pluginId);
Chris@439 28 ~PluginRDFDescription();
Chris@439 29
Chris@439 30 enum OutputDisposition
Chris@439 31 {
Chris@439 32 OutputDispositionUnknown,
Chris@439 33 OutputSparse,
Chris@439 34 OutputDense,
Chris@439 35 OutputTrackLevel
Chris@439 36 };
Chris@439 37
Chris@439 38 bool haveDescription() const;
Chris@457 39
Chris@457 40 QString getPluginName() const;
Chris@457 41 QString getPluginDescription() const;
Chris@457 42 QString getPluginMaker() const;
Chris@462 43 QString getPluginInfoURL() const;
Chris@457 44
Chris@457 45 QStringList getOutputIds() const;
Chris@457 46 QString getOutputName(QString outputId) const;
Chris@439 47 OutputDisposition getOutputDisposition(QString outputId) const;
Chris@439 48 QString getOutputEventTypeURI(QString outputId) const;
Chris@440 49 QString getOutputFeatureAttributeURI(QString outputId) const;
Chris@440 50 QString getOutputSignalTypeURI(QString outputId) const;
Chris@439 51 QString getOutputUnit(QString outputId) const;
Chris@439 52
Chris@439 53 protected:
Chris@439 54 typedef std::map<QString, OutputDisposition> OutputDispositionMap;
Chris@439 55 typedef std::map<QString, QString> OutputStringMap;
Chris@439 56
Chris@439 57 QString m_pluginId;
Chris@489 58 QString m_pluginUri;
Chris@439 59 bool m_haveDescription;
Chris@457 60 QString m_pluginName;
Chris@457 61 QString m_pluginDescription;
Chris@457 62 QString m_pluginMaker;
Chris@462 63 QString m_pluginInfoURL;
Chris@457 64 OutputStringMap m_outputNames;
Chris@439 65 OutputDispositionMap m_outputDispositions;
Chris@439 66 OutputStringMap m_outputEventTypeURIMap;
Chris@440 67 OutputStringMap m_outputFeatureAttributeURIMap;
Chris@440 68 OutputStringMap m_outputSignalTypeURIMap;
Chris@439 69 OutputStringMap m_outputUnitMap;
Chris@489 70 bool index();
Chris@489 71 bool indexMetadata();
Chris@489 72 bool indexOutputs();
Chris@439 73 };
Chris@439 74
Chris@439 75 #endif
Chris@439 76