summaryrefslogtreecommitdiffstats
path: root/ingen/Parser.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'ingen/Parser.hpp')
-rw-r--r--ingen/Parser.hpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/ingen/Parser.hpp b/ingen/Parser.hpp
index f5045848..59783459 100644
--- a/ingen/Parser.hpp
+++ b/ingen/Parser.hpp
@@ -18,7 +18,7 @@
#define INGEN_PARSER_HPP
#include <string>
-#include <list>
+#include <set>
#include <boost/optional.hpp>
@@ -26,6 +26,7 @@
#include "ingen/ingen.h"
#include "raul/Path.hpp"
#include "raul/URI.hpp"
+#include "sord/sordmm.hpp"
namespace Ingen {
@@ -45,6 +46,26 @@ public:
typedef Node::Properties Properties;
+ /** Record of a resource listed in a bundle manifest. */
+ struct ResourceRecord {
+ inline ResourceRecord(const std::string& u, const std::string& f)
+ : uri(u), filename(f)
+ {}
+
+ inline bool operator<(const ResourceRecord& r) const {
+ return uri < r.uri;
+ }
+
+ std::string uri; ///< URI of resource (e.g. a Graph)
+ std::string filename; ///< Path of describing file (seeAlso)
+ };
+
+ /** Find all resources of a given type listed in a manifest file. */
+ virtual std::set<ResourceRecord> find_resources(
+ Sord::World& world,
+ const std::string& manifest_uri,
+ const Raul::URI& type_uri);
+
virtual bool parse_file(
World* world,
Interface* target,