diff options
author | David Robillard <d@drobilla.net> | 2012-08-12 23:42:17 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-08-12 23:42:17 +0000 |
commit | efe8e2311ee2fed881f95cc1e72825906d21c7c1 (patch) | |
tree | 371c03610f691f0b97137b9e5b2f756b21fc5583 /ingen/GraphObject.hpp | |
parent | e63caf72f320ab683de6378ff6f2944890054cbf (diff) | |
download | ingen-efe8e2311ee2fed881f95cc1e72825906d21c7c1.tar.gz ingen-efe8e2311ee2fed881f95cc1e72825906d21c7c1.tar.bz2 ingen-efe8e2311ee2fed881f95cc1e72825906d21c7c1.zip |
Use ingen:root as the path for the root patch, opening up path space for engine/driver/etc.
Strict conversion between Path and URI (Path no longer is-a URI).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4672 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'ingen/GraphObject.hpp')
-rw-r--r-- | ingen/GraphObject.hpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/ingen/GraphObject.hpp b/ingen/GraphObject.hpp index 80da116e..fef73c6e 100644 --- a/ingen/GraphObject.hpp +++ b/ingen/GraphObject.hpp @@ -63,9 +63,23 @@ public: virtual const Raul::Symbol& symbol() const = 0; virtual GraphObject* graph_parent() const = 0; + static Raul::URI root_uri() { return Raul::URI("ingen:root"); } + + static bool uri_is_path(const Raul::URI& uri) { + return uri.substr(0, root_uri().length()) == root_uri().str(); + } + + static Raul::Path uri_to_path(const Raul::URI& uri) { + return (uri == root_uri()) ? "/" : uri.substr(root_uri().length()); + } + + static Raul::URI path_to_uri(const Raul::Path& path) { + return Raul::URI(root_uri().str() + path.c_str()); + } + protected: GraphObject(URIs& uris, const Raul::Path& path) - : Resource(uris, path) + : Resource(uris, path_to_uri(path)) {} Edges _edges; ///< Patches only |