diff options
author | David Robillard <d@drobilla.net> | 2012-05-15 01:52:08 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2012-05-15 01:52:08 +0000 |
commit | 22209796627acfef17c53d4cf523eed3daa26c2b (patch) | |
tree | d800c6ba96f7f8f6673a4e7da6409760001095af /src/server/events/CreateNode.hpp | |
parent | f4f72247ae1f5eac8610a145c119accf0b6097d9 (diff) | |
download | ingen-22209796627acfef17c53d4cf523eed3daa26c2b.tar.gz ingen-22209796627acfef17c53d4cf523eed3daa26c2b.tar.bz2 ingen-22209796627acfef17c53d4cf523eed3daa26c2b.zip |
Eliminate long-duration event locks by generated responses in pre_process().
This also fixes some correctness issues, since the state at pre_process() time is actually the state that needs to be broadcast to clients.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4416 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/events/CreateNode.hpp')
-rw-r--r-- | src/server/events/CreateNode.hpp | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/server/events/CreateNode.hpp b/src/server/events/CreateNode.hpp index 2b3e008b..b3b84abf 100644 --- a/src/server/events/CreateNode.hpp +++ b/src/server/events/CreateNode.hpp @@ -17,7 +17,8 @@ #ifndef INGEN_EVENTS_CREATENODE_HPP #define INGEN_EVENTS_CREATENODE_HPP -#include <string> +#include <list> +#include <utility> #include "ingen/Resource.hpp" @@ -53,16 +54,19 @@ public: void post_process(); private: - Raul::Path _path; - Raul::URI _plugin_uri; - PatchImpl* _patch; - PluginImpl* _plugin; - NodeImpl* _node; - CompiledPatch* _compiled_patch; ///< Patch's new process order - bool _node_already_exists; - bool _polyphonic; + /// Update put message to broadcast to clients + typedef std::list< std::pair<Raul::URI, Resource::Properties> > Update; + Raul::Path _path; + Raul::URI _plugin_uri; Resource::Properties _properties; + Update _update; + PatchImpl* _patch; + PluginImpl* _plugin; + NodeImpl* _node; + CompiledPatch* _compiled_patch; ///< Patch's new process order + bool _node_already_exists; + bool _polyphonic; }; } // namespace Events |