diff options
author | David Robillard <d@drobilla.net> | 2011-02-19 05:10:29 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-02-19 05:10:29 +0000 |
commit | 6b18de71d1c603255b263a64434005306f152f13 (patch) | |
tree | 09c6e87acca1fe76bc74b3b549fee7ad09751993 /src/engine/events/SetMetadata.cpp | |
parent | 8e07e115429a0869593d4f29dc3e6cf5c8b25049 (diff) | |
download | ingen-6b18de71d1c603255b263a64434005306f152f13.tar.gz ingen-6b18de71d1c603255b263a64434005306f152f13.tar.bz2 ingen-6b18de71d1c603255b263a64434005306f152f13.zip |
Save/load patches as nested bundles (fix ticket #520).
Sane (context-based, ala RDF quads) approach to the problem of externally visible / internally visible properties.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2993 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/events/SetMetadata.cpp')
-rw-r--r-- | src/engine/events/SetMetadata.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/engine/events/SetMetadata.cpp b/src/engine/events/SetMetadata.cpp index d1a1c53e..a6b446d4 100644 --- a/src/engine/events/SetMetadata.cpp +++ b/src/engine/events/SetMetadata.cpp @@ -54,7 +54,7 @@ SetMetadata::SetMetadata( SharedPtr<Request> request, SampleCount timestamp, bool create, - bool meta, + Resource::Graph context, const URI& subject, const Properties& properties, const Properties& remove) @@ -67,10 +67,14 @@ SetMetadata::SetMetadata( , _patch(NULL) , _compiled_patch(NULL) , _create(create) - , _is_meta(meta) + , _context(context) { + if (context != Resource::DEFAULT) { + Resource::set_context(_properties, context); + } + /* - LOG(info) << "Set " << subject << " {" << endl; + LOG(info) << "Set " << subject << " : " << context << " {" << endl; typedef Resource::Properties::const_iterator iterator; for (iterator i = properties.begin(); i != properties.end(); ++i) LOG(info) << " " << i->first << " = " << i->second << " :: " << i->second.type() << endl; @@ -177,7 +181,7 @@ SetMetadata::pre_process() const Raul::Atom& value = p->second; SpecialType op = NONE; if (obj) { - Resource& resource = _is_meta ? obj->meta() : *obj; + Resource& resource = *obj; resource.add_property(key, value); PortImpl* port = dynamic_cast<PortImpl*>(_object); @@ -353,7 +357,7 @@ SetMetadata::post_process() else _request->respond_ok(); if (_create) - _engine.broadcaster()->put(_subject, _properties); + _engine.broadcaster()->put(_subject, _properties, _context); else _engine.broadcaster()->delta(_subject, _remove, _properties); break; |