From f2abde60ca210ca3cbaa019b351c1cb22e4c1d1c Mon Sep 17 00:00:00 2001
From: David Robillard <d@drobilla.net>
Date: Wed, 15 Aug 2012 17:50:17 +0000
Subject: Rewrite Raul::Maid and eliminate Raul:List.

git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4702 a436a847-0d15-0410-975c-d299462d15a1
---
 src/server/CompiledPatch.hpp        | 9 ++++-----
 src/server/Engine.cpp               | 2 +-
 src/server/LV2Node.cpp              | 4 ++--
 src/server/LV2Node.hpp              | 5 ++---
 src/server/PatchImpl.hpp            | 2 --
 src/server/PortImpl.cpp             | 4 ++--
 src/server/events/Connect.cpp       | 4 ++--
 src/server/events/CreateNode.cpp    | 2 +-
 src/server/events/CreatePatch.cpp   | 2 +-
 src/server/events/Delete.cpp        | 4 ++--
 src/server/events/Delta.cpp         | 2 +-
 src/server/events/Disconnect.cpp    | 4 ++--
 src/server/events/DisconnectAll.cpp | 2 +-
 src/server/internals/Note.cpp       | 2 +-
 14 files changed, 22 insertions(+), 26 deletions(-)

diff --git a/src/server/CompiledPatch.hpp b/src/server/CompiledPatch.hpp
index 203f817b..7f973792 100644
--- a/src/server/CompiledPatch.hpp
+++ b/src/server/CompiledPatch.hpp
@@ -20,9 +20,8 @@
 #include <vector>
 #include <list>
 
-#include <boost/utility.hpp>
-
-#include "raul/Deletable.hpp"
+#include "raul/Disposable.hpp"
+#include "raul/Noncopyable.hpp"
 
 namespace Ingen {
 namespace Server {
@@ -64,8 +63,8 @@ private:
  * before its providers, using this order as well as semaphores.
  */
 class CompiledPatch : public std::vector<CompiledNode>
-                    , public Raul::Deletable
-                    , public boost::noncopyable
+                    , public Raul::Disposable
+                    , public Raul::Noncopyable
 {
 };
 
diff --git a/src/server/Engine.cpp b/src/server/Engine.cpp
index c3c1221f..eeb28e5a 100644
--- a/src/server/Engine.cpp
+++ b/src/server/Engine.cpp
@@ -53,7 +53,7 @@ Engine::Engine(Ingen::World* world)
 	, _broadcaster(new Broadcaster())
 	, _buffer_factory(new BufferFactory(*this, world->uris()))
 	, _control_bindings(NULL)
-	, _maid(new Raul::Maid(event_queue_size()))
+	, _maid(new Raul::Maid())
 	, _node_factory(new NodeFactory(world))
 	, _pre_processor(new PreProcessor())
 	, _post_processor(new PostProcessor(*this))
diff --git a/src/server/LV2Node.cpp b/src/server/LV2Node.cpp
index 7b3a2ca5..16890e6f 100644
--- a/src/server/LV2Node.cpp
+++ b/src/server/LV2Node.cpp
@@ -171,7 +171,7 @@ LV2Node::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
 		poly = 1;
 
 	if (_prepared_instances) {
-		maid.push(_instances);
+		maid.dispose(_instances);
 		_instances = _prepared_instances;
 		_prepared_instances = NULL;
 	}
@@ -443,7 +443,7 @@ LV2Node::process(ProcessContext& context)
 			Response& r = _responses.front();
 			_worker_iface->work_response(inst, r.size, r.data);
 			_responses.pop_front();
-			context.engine().maid()->push(&r);
+			context.engine().maid()->dispose(&r);
 		}
 
 		if (_worker_iface->end_run) {
diff --git a/src/server/LV2Node.hpp b/src/server/LV2Node.hpp
index a012b87a..e7f8eae6 100644
--- a/src/server/LV2Node.hpp
+++ b/src/server/LV2Node.hpp
@@ -17,10 +17,9 @@
 #ifndef INGEN_ENGINE_LV2NODE_HPP
 #define INGEN_ENGINE_LV2NODE_HPP
 
-#include <string>
-
 #include "lilv/lilv.h"
 #include "lv2/lv2plug.in/ns/ext/worker/worker.h"
+#include "raul/Disposable.hpp"
 
 #include "BufferRef.hpp"
 #include "NodeImpl.hpp"
@@ -75,7 +74,7 @@ protected:
 
 	typedef Raul::Array< SharedPtr<void> > Instances;
 
-	struct Response : public Raul::Deletable
+	struct Response : public Raul::Disposable
 	                , public Raul::Noncopyable
 	                , public boost::intrusive::slist_base_hook<>
 	{
diff --git a/src/server/PatchImpl.hpp b/src/server/PatchImpl.hpp
index 793f535b..badbfb81 100644
--- a/src/server/PatchImpl.hpp
+++ b/src/server/PatchImpl.hpp
@@ -19,8 +19,6 @@
 
 #include <cstdlib>
 
-#include "raul/List.hpp"
-
 #include "CompiledPatch.hpp"
 #include "DuplexPort.hpp"
 #include "NodeImpl.hpp"
diff --git a/src/server/PortImpl.cpp b/src/server/PortImpl.cpp
index 9a12028a..3f265636 100644
--- a/src/server/PortImpl.cpp
+++ b/src/server/PortImpl.cpp
@@ -257,11 +257,11 @@ PortImpl::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
 	_poly = poly;
 
 	// Apply a new set of buffers from a preceding call to prepare_poly
-	maid.push(set_buffers(context, _prepared_buffers));
+	maid.dispose(set_buffers(context, _prepared_buffers));
 	assert(_buffers == _prepared_buffers);
 	_prepared_buffers = NULL;
 
-	maid.push(_set_states);
+	maid.dispose(_set_states);
 	_set_states          = _prepared_set_states;
 	_prepared_set_states = NULL;
 
diff --git a/src/server/events/Connect.cpp b/src/server/events/Connect.cpp
index f3a736ad..2403b327 100644
--- a/src/server/events/Connect.cpp
+++ b/src/server/events/Connect.cpp
@@ -144,9 +144,9 @@ Connect::execute(ProcessContext& context)
 {
 	if (!_status) {
 		_head->add_edge(context, _edge.get());
-		_engine.maid()->push(_head->set_buffers(context, _buffers));
+		_engine.maid()->dispose(_head->set_buffers(context, _buffers));
 		_head->connect_buffers();
-		_engine.maid()->push(_patch->compiled_patch());
+		_engine.maid()->dispose(_patch->compiled_patch());
 		_patch->compiled_patch(_compiled_patch);
 	}
 }
diff --git a/src/server/events/CreateNode.cpp b/src/server/events/CreateNode.cpp
index 02902db5..ca2be305 100644
--- a/src/server/events/CreateNode.cpp
+++ b/src/server/events/CreateNode.cpp
@@ -124,7 +124,7 @@ void
 CreateNode::execute(ProcessContext& context)
 {
 	if (_node) {
-		_engine.maid()->push(_patch->compiled_patch());
+		_engine.maid()->dispose(_patch->compiled_patch());
 		_patch->compiled_patch(_compiled_patch);
 	}
 }
diff --git a/src/server/events/CreatePatch.cpp b/src/server/events/CreatePatch.cpp
index 25f90d5d..4f14ade5 100644
--- a/src/server/events/CreatePatch.cpp
+++ b/src/server/events/CreatePatch.cpp
@@ -105,7 +105,7 @@ CreatePatch::execute(ProcessContext& context)
 	if (_patch) {
 		assert(_parent);
 		assert(!_path.is_root());
-		_engine.maid()->push(_parent->compiled_patch());
+		_engine.maid()->dispose(_parent->compiled_patch());
 		_parent->compiled_patch(_compiled_patch);
 	}
 }
diff --git a/src/server/events/Delete.cpp b/src/server/events/Delete.cpp
index e7001287..d2e3e58e 100644
--- a/src/server/events/Delete.cpp
+++ b/src/server/events/Delete.cpp
@@ -124,7 +124,7 @@ Delete::execute(ProcessContext& context)
 
 	PatchImpl* parent = _node ? _node->parent_patch() : _port->parent_patch();
 	if (_port) {
-		_engine.maid()->push(parent->external_ports());
+		_engine.maid()->dispose(parent->external_ports());
 		parent->external_ports(_ports_array);
 
 		if (_engine_port) {
@@ -133,7 +133,7 @@ Delete::execute(ProcessContext& context)
 	}
 
 	if (parent) {
-		_engine.maid()->push(parent->compiled_patch());
+		_engine.maid()->dispose(parent->compiled_patch());
 		parent->compiled_patch(_compiled_patch);
 	}
 }
diff --git a/src/server/events/Delta.cpp b/src/server/events/Delta.cpp
index 41ff8f8b..17ef8d45 100644
--- a/src/server/events/Delta.cpp
+++ b/src/server/events/Delta.cpp
@@ -287,7 +287,7 @@ Delta::execute(ProcessContext& context)
 		case ENABLE:
 			if (value.get_bool()) {
 				if (_compiled_patch) {
-					_engine.maid()->push(_patch->compiled_patch());
+					_engine.maid()->dispose(_patch->compiled_patch());
 					_patch->compiled_patch(_compiled_patch);
 				}
 				_patch->enable();
diff --git a/src/server/events/Disconnect.cpp b/src/server/events/Disconnect.cpp
index 1726846a..5b756d84 100644
--- a/src/server/events/Disconnect.cpp
+++ b/src/server/events/Disconnect.cpp
@@ -182,7 +182,7 @@ Disconnect::Impl::execute(ProcessContext& context, bool set_dst_buffers)
 
 	if (set_dst_buffers) {
 		if (_buffers) {
-			_engine.maid()->push(_dst_input_port->set_buffers(context, _buffers));
+			_engine.maid()->dispose(_dst_input_port->set_buffers(context, _buffers));
 		} else {
 			_dst_input_port->setup_buffers(*_engine.buffer_factory(),
 			                               _dst_input_port->poly(),
@@ -208,7 +208,7 @@ Disconnect::execute(ProcessContext& context)
 			return;
 		}
 
-		_engine.maid()->push(_patch->compiled_patch());
+		_engine.maid()->dispose(_patch->compiled_patch());
 		_patch->compiled_patch(_compiled_patch);
 	}
 }
diff --git a/src/server/events/DisconnectAll.cpp b/src/server/events/DisconnectAll.cpp
index 417b6154..693c8784 100644
--- a/src/server/events/DisconnectAll.cpp
+++ b/src/server/events/DisconnectAll.cpp
@@ -153,7 +153,7 @@ DisconnectAll::execute(ProcessContext& context)
 		}
 	}
 
-	_engine.maid()->push(_parent->compiled_patch());
+	_engine.maid()->dispose(_parent->compiled_patch());
 	_parent->compiled_patch(_compiled_patch);
 }
 
diff --git a/src/server/internals/Note.cpp b/src/server/internals/Note.cpp
index c8d1be23..5f509859 100644
--- a/src/server/internals/Note.cpp
+++ b/src/server/internals/Note.cpp
@@ -125,7 +125,7 @@ NoteNode::apply_poly(ProcessContext& context, Raul::Maid& maid, uint32_t poly)
 
 	if (_prepared_voices) {
 		assert(_polyphony <= _prepared_voices->size());
-		maid.push(_voices);
+		maid.dispose(_voices);
 		_voices = _prepared_voices;
 		_prepared_voices = NULL;
 	}
-- 
cgit v1.2.1