diff options
author | David Robillard <d@drobilla.net> | 2009-05-27 23:21:34 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-05-27 23:21:34 +0000 |
commit | 2f595631859574bfa7779ebb42f42b8590f5424c (patch) | |
tree | c91c0cddcd93af991161c6cde4eceaaf45c5c8d5 /src/client | |
parent | 20ff9af76b21b751ac29b354cf557e86b69c52f7 (diff) | |
download | ingen-2f595631859574bfa7779ebb42f42b8590f5424c.tar.gz ingen-2f595631859574bfa7779ebb42f42b8590f5424c.tar.bz2 ingen-2f595631859574bfa7779ebb42f42b8590f5424c.zip |
Remove 'property' vs 'variable' dichotomy in favour of 'meta objects' (to match serialisation).
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2016 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/ClientStore.cpp | 40 | ||||
-rw-r--r-- | src/client/ClientStore.hpp | 3 | ||||
-rw-r--r-- | src/client/DeprecatedLoader.cpp | 16 | ||||
-rw-r--r-- | src/client/HTTPEngineSender.cpp | 12 | ||||
-rw-r--r-- | src/client/HTTPEngineSender.hpp | 8 | ||||
-rw-r--r-- | src/client/OSCClientReceiver.cpp | 26 | ||||
-rw-r--r-- | src/client/OSCClientReceiver.hpp | 1 | ||||
-rw-r--r-- | src/client/OSCEngineSender.cpp | 20 | ||||
-rw-r--r-- | src/client/OSCEngineSender.hpp | 6 | ||||
-rw-r--r-- | src/client/ObjectModel.cpp | 18 | ||||
-rw-r--r-- | src/client/ObjectModel.hpp | 10 | ||||
-rw-r--r-- | src/client/PatchModel.cpp | 4 | ||||
-rw-r--r-- | src/client/PatchModel.hpp | 2 | ||||
-rw-r--r-- | src/client/SigClientInterface.hpp | 11 | ||||
-rw-r--r-- | src/client/ThreadedSigClientInterface.hpp | 11 |
15 files changed, 59 insertions, 129 deletions
diff --git a/src/client/ClientStore.cpp b/src/client/ClientStore.cpp index 10a5ac9b..7774e9c3 100644 --- a/src/client/ClientStore.cpp +++ b/src/client/ClientStore.cpp @@ -50,7 +50,6 @@ ClientStore::ClientStore(SharedPtr<EngineInterface> engine, SharedPtr<SigClientI emitter->signal_clear_patch.connect(sigc::mem_fun(this, &ClientStore::clear_patch)); emitter->signal_connection.connect(sigc::mem_fun(this, &ClientStore::connect)); emitter->signal_disconnection.connect(sigc::mem_fun(this, &ClientStore::disconnect)); - emitter->signal_variable_change.connect(sigc::mem_fun(this, &ClientStore::set_variable)); emitter->signal_property_change.connect(sigc::mem_fun(this, &ClientStore::set_property)); emitter->signal_port_value.connect(sigc::mem_fun(this, &ClientStore::set_port_value)); emitter->signal_voice_value.connect(sigc::mem_fun(this, &ClientStore::set_voice_value)); @@ -87,7 +86,7 @@ ClientStore::add_object(SharedPtr<ObjectModel> object) signal_new_object.emit(object); #if 0 - resolve_variable_orphans(parent); + resolve_property_orphans(parent); resolve_orphans(parent); SharedPtr<PortModel> port = PtrCast<PortModel>(object); @@ -268,10 +267,14 @@ ClientStore::new_plugin(const URI& uri, const URI& type_uri, const Symbol& symbo void -ClientStore::put(const Path& path, const Resource::Properties& properties) +ClientStore::put(const URI& uri, const Resource::Properties& properties) { + size_t hash = uri.find("#"); + bool meta = (hash != string::npos); + Path path(meta ? (string("/") + uri.chop_start("#")) : uri.str()); + typedef Resource::Properties::const_iterator iterator; - cerr << "CLIENT PUT " << path << " {" << endl; + cerr << "CLIENT PUT " << uri << " (" << path << ") {" << endl; for (iterator i = properties.begin(); i != properties.end(); ++i) cerr << "\t" << i->first << " = " << i->second << " :: " << i->second.type() << endl; cerr << "}" << endl; @@ -350,34 +353,23 @@ ClientStore::clear_patch(const Path& path) void -ClientStore::set_variable(const URI& subject_path, const URI& predicate, const Atom& value) -{ - SharedPtr<Resource> subject = resource(subject_path); - - if (!value.is_valid()) { - cerr << "ERROR: variable '" << predicate << "' is invalid" << endl; - } else if (subject) { - SharedPtr<ObjectModel> om = PtrCast<ObjectModel>(subject); - if (om) - om->set_variable(predicate, value); - else - subject->set_property(predicate, value); - } else { - //add_variable_orphan(subject_path, predicate, value); - cerr << "WARNING: variable '" << predicate << "' for unknown object " << subject_path << endl; - } -} - - -void ClientStore::set_property(const URI& subject_path, const URI& predicate, const Atom& value) { SharedPtr<Resource> subject = resource(subject_path); + + size_t hash = subject_path.find("#"); if (!value.is_valid()) { cerr << "ERROR: property '" << predicate << "' is invalid" << endl; } else if (subject) { subject->set_property(predicate, value); + } else if (hash != string::npos) { + cerr << "META OBJECT " << subject_path << " PROPERTY " << predicate << endl; + Path instance_path = string("/") + subject_path.chop_start("#"); + SharedPtr<ObjectModel> om = PtrCast<ObjectModel>(subject); + if (om) + om->meta().set_property(predicate, value); } else { + //add_property_orphan(subject_path, predicate, value); cerr << "WARNING: property '" << predicate << "' for unknown object " << subject_path << endl; } } diff --git a/src/client/ClientStore.hpp b/src/client/ClientStore.hpp index 6688bc23..00069701 100644 --- a/src/client/ClientStore.hpp +++ b/src/client/ClientStore.hpp @@ -69,9 +69,8 @@ public: // CommonInterface void new_plugin(const Raul::URI& uri, const Raul::URI& type_uri, const Raul::Symbol& symbol); bool new_object(const Shared::GraphObject* object); - void put(const Raul::Path& path, const Shared::Resource::Properties& properties); + void put(const Raul::URI& path, const Shared::Resource::Properties& properties); void move(const Raul::Path& old_path, const Raul::Path& new_path); - void set_variable(const Raul::URI& subject_path, const Raul::URI& predicate, const Raul::Atom& value); void set_property(const Raul::URI& subject_path, const Raul::URI& predicate, const Raul::Atom& value); void set_port_value(const Raul::Path& port_path, const Raul::Atom& value); void set_voice_value(const Raul::Path& port_path, uint32_t voice, const Raul::Atom& value); diff --git a/src/client/DeprecatedLoader.cpp b/src/client/DeprecatedLoader.cpp index f593c3be..61e80b82 100644 --- a/src/client/DeprecatedLoader.cpp +++ b/src/client/DeprecatedLoader.cpp @@ -297,7 +297,7 @@ DeprecatedLoader::load_patch(const Glib::ustring& filename, props.insert(make_pair("ingen:polyphony", Atom((int32_t)poly))); _engine->put(path, props); for (GraphObject::Properties::const_iterator i = initial_data.begin(); i != initial_data.end(); ++i) - _engine->set_variable(path, i->first, i->second); + _engine->set_property(path, i->first, i->second); } // Load nodes @@ -352,10 +352,10 @@ DeprecatedLoader::load_patch(const Glib::ustring& filename, // Done above.. late enough? //for (Properties::const_iterator i = data.begin(); i != data.end(); ++i) - // _engine->set_variable(subject, i->first, i->second); + // _engine->set_property(subject, i->first, i->second); if (!existing) - _engine->set_variable(path, "ingen:enabled", (bool)true); + _engine->set_property(path, "ingen:enabled", (bool)true); _load_path_translations.clear(); @@ -507,7 +507,7 @@ DeprecatedLoader::load_node(const Path& parent, xmlDocPtr doc, const xmlNodePtr _engine->put(path, props); for (GraphObject::Properties::const_iterator i = initial_data.begin(); i != initial_data.end(); ++i) - _engine->set_variable(path, i->first, i->second); + _engine->set_property(path, i->first, i->second); return SharedPtr<NodeModel>(); @@ -530,10 +530,10 @@ DeprecatedLoader::load_node(const Path& parent, xmlDocPtr doc, const xmlNodePtr props.insert(make_pair("rdf:instanceOf", Atom(Atom::URI, plugin_uri))); _engine->put(path, props); - _engine->set_variable(path, "ingen:polyphonic", bool(polyphonic)); + _engine->set_property(path, "ingen:polyphonic", bool(polyphonic)); for (GraphObject::Properties::const_iterator i = initial_data.begin(); i != initial_data.end(); ++i) - _engine->set_variable(path, i->first, i->second); + _engine->set_property(path, i->first, i->second); return true; } @@ -544,9 +544,9 @@ DeprecatedLoader::load_node(const Path& parent, xmlDocPtr doc, const xmlNodePtr props.insert(make_pair("rdf:type", Atom(Atom::URI, "ingen:Node"))); props.insert(make_pair("rdf:instanceOf", Atom(Atom::URI, plugin_uri))); _engine->put(path, props); - _engine->set_variable(path, "ingen:polyphonic", bool(polyphonic)); + _engine->set_property(path, "ingen:polyphonic", bool(polyphonic)); for (GraphObject::Properties::const_iterator i = initial_data.begin(); i != initial_data.end(); ++i) - _engine->set_variable(path, i->first, i->second); + _engine->set_property(path, i->first, i->second); return true; } diff --git a/src/client/HTTPEngineSender.cpp b/src/client/HTTPEngineSender.cpp index 48b861d5..18b92cad 100644 --- a/src/client/HTTPEngineSender.cpp +++ b/src/client/HTTPEngineSender.cpp @@ -105,7 +105,7 @@ HTTPEngineSender::quit() void -HTTPEngineSender::put(const Raul::Path& path, +HTTPEngineSender::put(const Raul::URI& path, const Shared::Resource::Properties& properties) { } @@ -173,15 +173,7 @@ HTTPEngineSender::midi_learn(const Path& node_path) void -HTTPEngineSender::set_variable(const URI& path, - const URI& predicate, - const Atom& value) -{ -} - - -void -HTTPEngineSender::set_property(const URI& path, +HTTPEngineSender::set_property(const URI& subject, const URI& predicate, const Atom& value) { diff --git a/src/client/HTTPEngineSender.hpp b/src/client/HTTPEngineSender.hpp index c284995e..ee27e1de 100644 --- a/src/client/HTTPEngineSender.hpp +++ b/src/client/HTTPEngineSender.hpp @@ -74,7 +74,7 @@ public: // Object commands - virtual void put(const Raul::Path& path, + virtual void put(const Raul::URI& path, const Shared::Resource::Properties& properties); virtual void clear_patch(const Raul::Path& path); @@ -93,11 +93,7 @@ public: virtual void disconnect_all(const Raul::Path& parent_patch_path, const Raul::Path& path); - virtual void set_variable(const Raul::URI& subject_path, - const Raul::URI& predicate, - const Raul::Atom& value); - - virtual void set_property(const Raul::URI& subject_path, + virtual void set_property(const Raul::URI& subject, const Raul::URI& predicate, const Raul::Atom& value); diff --git a/src/client/OSCClientReceiver.cpp b/src/client/OSCClientReceiver.cpp index ec1f1378..e30ff7c4 100644 --- a/src/client/OSCClientReceiver.cpp +++ b/src/client/OSCClientReceiver.cpp @@ -150,7 +150,6 @@ OSCClientReceiver::setup_callbacks() lo_server_thread_add_method(_st, "/ingen/new_connection", "ss", connection_cb, this); lo_server_thread_add_method(_st, "/ingen/disconnection", "ss", disconnection_cb, this); lo_server_thread_add_method(_st, "/ingen/new_port", "sisi", new_port_cb, this); - lo_server_thread_add_method(_st, "/ingen/set_variable", NULL, set_variable_cb, this); lo_server_thread_add_method(_st, "/ingen/set_property", NULL, set_property_cb, this); lo_server_thread_add_method(_st, "/ingen/set_port_value", "sf", set_port_value_cb, this); lo_server_thread_add_method(_st, "/ingen/set_voice_value", "sif", set_voice_value_cb, this); @@ -216,25 +215,6 @@ OSCClientReceiver::_disconnection_cb(const char* path, const char* types, lo_arg } -/** Notification of a new or updated variable. - */ -int -OSCClientReceiver::_set_variable_cb(const char* path, const char* types, lo_arg** argv, int argc, lo_message msg) -{ - if (argc != 3 || types[0] != 's' || types[1] != 's') - return 1; - - const char* obj_path = &argv[0]->s; - const char* key = &argv[1]->s; - - Atom value = AtomLiblo::lo_arg_to_atom(types[2], argv[2]); - - _target->set_variable(obj_path, key, value); - - return 0; -} - - /** Notification of a new or updated property. */ int @@ -243,12 +223,12 @@ OSCClientReceiver::_set_property_cb(const char* path, const char* types, lo_arg* if (argc != 3 || types[0] != 's' || types[1] != 's') return 1; - const char* obj_path = &argv[0]->s; - const char* key = &argv[1]->s; + const char* obj_uri = &argv[0]->s; + const char* key = &argv[1]->s; Atom value = AtomLiblo::lo_arg_to_atom(types[2], argv[2]); - _target->set_property(obj_path, key, value); + _target->set_property(obj_uri, key, value); return 0; } diff --git a/src/client/OSCClientReceiver.hpp b/src/client/OSCClientReceiver.hpp index d44c4ddb..a42a7ee0 100644 --- a/src/client/OSCClientReceiver.hpp +++ b/src/client/OSCClientReceiver.hpp @@ -91,7 +91,6 @@ private: LO_HANDLER(disconnection); LO_HANDLER(new_port); LO_HANDLER(put); - LO_HANDLER(set_variable); LO_HANDLER(set_property); LO_HANDLER(set_port_value); LO_HANDLER(set_voice_value); diff --git a/src/client/OSCEngineSender.cpp b/src/client/OSCEngineSender.cpp index ac0d948c..3bc872f7 100644 --- a/src/client/OSCEngineSender.cpp +++ b/src/client/OSCEngineSender.cpp @@ -133,7 +133,7 @@ OSCEngineSender::quit() void -OSCEngineSender::put(const Raul::Path& path, +OSCEngineSender::put(const Raul::URI& path, const Shared::Resource::Properties& properties) { cerr << "OSC ENGINE PUT " << path << endl; @@ -249,27 +249,13 @@ OSCEngineSender::midi_learn(const Path& node_path) void -OSCEngineSender::set_variable(const URI& obj_path, +OSCEngineSender::set_property(const URI& subject, const URI& predicate, const Atom& value) { lo_message m = lo_message_new(); lo_message_add_int32(m, next_id()); - lo_message_add_string(m, obj_path.c_str()); - lo_message_add_string(m, predicate.c_str()); - Raul::AtomLiblo::lo_message_add_atom(m, value); - send_message("/ingen/set_variable", m); -} - - -void -OSCEngineSender::set_property(const URI& obj_path, - const URI& predicate, - const Atom& value) -{ - lo_message m = lo_message_new(); - lo_message_add_int32(m, next_id()); - lo_message_add_string(m, obj_path.c_str()); + lo_message_add_string(m, subject.c_str()); lo_message_add_string(m, predicate.c_str()); Raul::AtomLiblo::lo_message_add_atom(m, value); send_message("/ingen/set_property", m); diff --git a/src/client/OSCEngineSender.hpp b/src/client/OSCEngineSender.hpp index a7479f70..187093d3 100644 --- a/src/client/OSCEngineSender.hpp +++ b/src/client/OSCEngineSender.hpp @@ -77,7 +77,7 @@ public: // Object commands - virtual void put(const Raul::Path& path, + virtual void put(const Raul::URI& path, const Shared::Resource::Properties& properties); virtual void clear_patch(const Raul::Path& path); @@ -96,10 +96,6 @@ public: virtual void disconnect_all(const Raul::Path& parent_patch_path, const Raul::Path& path); - virtual void set_variable(const Raul::URI& subject_path, - const Raul::URI& predicate, - const Raul::Atom& value); - virtual void set_property(const Raul::URI& subject_path, const Raul::URI& predicate, const Raul::Atom& value); diff --git a/src/client/ObjectModel.cpp b/src/client/ObjectModel.cpp index 2d3251c6..367237c0 100644 --- a/src/client/ObjectModel.cpp +++ b/src/client/ObjectModel.cpp @@ -29,6 +29,7 @@ namespace Client { ObjectModel::ObjectModel(const Path& path) : ResourceImpl(path) + , _meta(std::string("meta:#") + path.chop_start("/")) , _path(path) { } @@ -93,20 +94,13 @@ ObjectModel::set(SharedPtr<ObjectModel> o) if (o->_parent) _parent = o->_parent; + for (Properties::const_iterator v = o->meta().properties().begin(); v != o->meta().properties().end(); ++v) { + o->meta().set_property(v->first, v->second); + signal_property.emit(v->first, v->second); + } for (Properties::const_iterator v = o->properties().begin(); v != o->properties().end(); ++v) { - const Raul::Atom& mine = get_property(v->first); - if (mine.is_valid()) - cerr << "WARNING: " << _path << "Client/Server property mismatch: " << v->first << endl; ResourceImpl::set_property(v->first, v->second); - signal_variable.emit(v->first, v->second); - } - - for (Properties::const_iterator v = o->variables().begin(); v != o->variables().end(); ++v) { - Properties::const_iterator mine = _variables.find(v->first); - if (mine != _variables.end()) - cerr << "WARNING: " << _path << "Client/Server variable mismatch: " << v->first << endl; - _variables.insert(make_pair(v->first, v->second)); - signal_variable.emit(v->first, v->second); + signal_property.emit(v->first, v->second); } } diff --git a/src/client/ObjectModel.hpp b/src/client/ObjectModel.hpp index f47bdfa6..321555fd 100644 --- a/src/client/ObjectModel.hpp +++ b/src/client/ObjectModel.hpp @@ -62,11 +62,13 @@ public: signal_property.emit(key, value); } - virtual void set_variable(const Raul::URI& key, const Raul::Atom& value) { - _variables.insert(make_pair(key, value)); - signal_variable.emit(key, value); + virtual void set_meta_property(const Raul::URI& key, const Raul::Atom& value) { + _meta.set_property(key, value); + signal_property.emit(key, value); } + Resource& meta() { return _meta; } + const Resource& meta() const { return _meta; } const Properties& variables() const { return _variables; } Properties& variables() { return _variables; } const Raul::Path path() const { return _path; } @@ -79,7 +81,6 @@ public: // Signals sigc::signal<void, SharedPtr<ObjectModel> > signal_new_child; sigc::signal<void, SharedPtr<ObjectModel> > signal_removed_child; - sigc::signal<void, const Raul::URI&, const Raul::Atom&> signal_variable; sigc::signal<void, const Raul::URI&, const Raul::Atom&> signal_property; sigc::signal<void> signal_destroyed; sigc::signal<void> signal_moved; @@ -96,6 +97,7 @@ protected: virtual void set(SharedPtr<ObjectModel> model); + ResourceImpl _meta; Raul::Path _path; SharedPtr<ObjectModel> _parent; diff --git a/src/client/PatchModel.cpp b/src/client/PatchModel.cpp index bdffed43..b64b9e50 100644 --- a/src/client/PatchModel.cpp +++ b/src/client/PatchModel.cpp @@ -170,9 +170,9 @@ PatchModel::enabled() const void -PatchModel::set_variable(const Raul::URI& key, const Atom& value) +PatchModel::set_meta_property(const Raul::URI& key, const Atom& value) { - NodeModel::set_variable(key, value); + NodeModel::set_meta_property(key, value); if (key.str() == "ingen:polyphony") _poly = value.get_int32(); } diff --git a/src/client/PatchModel.hpp b/src/client/PatchModel.hpp index 4b036fbc..b52a4f8d 100644 --- a/src/client/PatchModel.hpp +++ b/src/client/PatchModel.hpp @@ -60,7 +60,7 @@ public: signal_editable.emit(e); } } - virtual void set_variable(const Raul::URI& key, const Raul::Atom& value); + virtual void set_meta_property(const Raul::URI& key, const Raul::Atom& value); // Signals sigc::signal<void, SharedPtr<NodeModel> > signal_new_node; diff --git a/src/client/SigClientInterface.hpp b/src/client/SigClientInterface.hpp index 6038ad9e..857c575d 100644 --- a/src/client/SigClientInterface.hpp +++ b/src/client/SigClientInterface.hpp @@ -53,7 +53,7 @@ public: sigc::signal<void, Raul::URI, Raul::URI, Raul::Symbol> signal_new_plugin; sigc::signal<void, Raul::Path, uint32_t> signal_new_patch; sigc::signal<void, Raul::Path, Raul::URI, uint32_t, bool> signal_new_port; - sigc::signal<void, Raul::Path, Shared::Resource::Properties> signal_put; + sigc::signal<void, Raul::URI, Shared::Resource::Properties> signal_put; sigc::signal<void, Raul::Path> signal_clear_patch; sigc::signal<void, Raul::Path, Raul::Path> signal_object_moved; sigc::signal<void, Raul::Path> signal_object_deleted; @@ -98,7 +98,7 @@ protected: void new_plugin(const Raul::URI& uri, const Raul::URI& type_uri, const Raul::Symbol& symbol) { if (_enabled) signal_new_plugin.emit(uri, type_uri, symbol); } - void put(const Raul::Path& path, const Shared::Resource::Properties& properties) + void put(const Raul::URI& path, const Shared::Resource::Properties& properties) { if (_enabled) signal_put.emit(path, properties); } void connect(const Raul::Path& src_port_path, const Raul::Path& dst_port_path) @@ -116,11 +116,8 @@ protected: void disconnect(const Raul::Path& src_port_path, const Raul::Path& dst_port_path) { if (_enabled) signal_disconnection.emit(src_port_path, dst_port_path); } - void set_variable(const Raul::URI& path, const Raul::URI& key, const Raul::Atom& value) - { if (_enabled) signal_variable_change.emit(path, key, value); } - - void set_property(const Raul::URI& path, const Raul::URI& key, const Raul::Atom& value) - { if (_enabled) signal_property_change.emit(path, key, value); } + void set_property(const Raul::URI& subject, const Raul::URI& key, const Raul::Atom& value) + { if (_enabled) signal_property_change.emit(subject, key, value); } void set_port_value(const Raul::Path& port_path, const Raul::Atom& value) { if (_enabled) signal_port_value.emit(port_path, value); } diff --git a/src/client/ThreadedSigClientInterface.hpp b/src/client/ThreadedSigClientInterface.hpp index 21b92d56..d83e3334 100644 --- a/src/client/ThreadedSigClientInterface.hpp +++ b/src/client/ThreadedSigClientInterface.hpp @@ -92,7 +92,7 @@ public: void new_plugin(const Raul::URI& uri, const Raul::URI& type_uri, const Raul::Symbol& symbol) { push_sig(sigc::bind(new_plugin_slot, uri, type_uri, symbol)); } - void put(const Raul::Path& path, const Shared::Resource::Properties& properties) + void put(const Raul::URI& path, const Shared::Resource::Properties& properties) { push_sig(sigc::bind(put_slot, path, properties)); } void connect(const Raul::Path& src_port_path, const Raul::Path& dst_port_path) @@ -110,11 +110,8 @@ public: void disconnect(const Raul::Path& src_port_path, const Raul::Path& dst_port_path) { push_sig(sigc::bind(disconnection_slot, src_port_path, dst_port_path)); } - void set_variable(const Raul::URI& path, const Raul::URI& key, const Raul::Atom& value) - { push_sig(sigc::bind(variable_change_slot, path, key, value)); } - - void set_property(const Raul::URI& path, const Raul::URI& key, const Raul::Atom& value) - { push_sig(sigc::bind(property_change_slot, path, key, value)); } + void set_property(const Raul::URI& subject, const Raul::URI& key, const Raul::Atom& value) + { push_sig(sigc::bind(property_change_slot, subject, key, value)); } void set_port_value(const Raul::Path& port_path, const Raul::Atom& value) { push_sig(sigc::bind(port_value_slot, port_path, value)); } @@ -144,7 +141,7 @@ private: sigc::slot<void, std::string> error_slot; sigc::slot<void, Raul::URI, Raul::URI, Raul::Symbol> new_plugin_slot; sigc::slot<void, Raul::Path, Raul::URI, uint32_t, bool> new_port_slot; - sigc::slot<void, Raul::Path, Shared::Resource::Properties> put_slot; + sigc::slot<void, Raul::URI, Shared::Resource::Properties> put_slot; sigc::slot<void, Raul::Path, Raul::Path> connection_slot; sigc::slot<void, Raul::Path> clear_patch_slot; sigc::slot<void, Raul::Path> object_deleted_slot; |