summaryrefslogtreecommitdiffstats
path: root/src/libs/client/NodeModel.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2006-09-11 19:57:59 +0000
committerDavid Robillard <d@drobilla.net>2006-09-11 19:57:59 +0000
commit16c866f220847ae23012318d2c1a5023076ab5fa (patch)
tree1cd383ecbe4d3b800423b9860691d89eba2e8a52 /src/libs/client/NodeModel.cpp
parentb15864870d34a1188eda93ad215734275037278e (diff)
downloadingen-16c866f220847ae23012318d2c1a5023076ab5fa.tar.gz
ingen-16c866f220847ae23012318d2c1a5023076ab5fa.tar.bz2
ingen-16c866f220847ae23012318d2c1a5023076ab5fa.zip
Bug fixes.
git-svn-id: http://svn.drobilla.net/lad/ingen@129 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/client/NodeModel.cpp')
-rw-r--r--src/libs/client/NodeModel.cpp27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/libs/client/NodeModel.cpp b/src/libs/client/NodeModel.cpp
index 05b7b43e..80f8f03a 100644
--- a/src/libs/client/NodeModel.cpp
+++ b/src/libs/client/NodeModel.cpp
@@ -44,8 +44,15 @@ NodeModel::NodeModel(const string& plugin_uri, const Path& path)
NodeModel::~NodeModel()
{
- /*for (PortModelList::iterator i = m_ports.begin(); i != m_ports.end(); ++i)
- delete(*i);*/
+ clear();
+ m_controller.reset();
+}
+
+
+void
+NodeModel::remove_port(CountedPtr<PortModel> port)
+{
+ m_ports.remove(port);
}
@@ -64,11 +71,7 @@ NodeModel::remove_port(const string& port_path)
void
NodeModel::clear()
{
- /*for (PortModelList::iterator i = m_ports.begin(); i != m_ports.end(); ++i)
- delete (*i);*/
-
m_ports.clear();
-
assert(m_ports.empty());
}
@@ -100,6 +103,18 @@ NodeModel::add_child(CountedPtr<ObjectModel> c)
void
+NodeModel::remove_child(CountedPtr<ObjectModel> c)
+{
+ assert(c->path().is_child_of(m_path));
+ assert(c->parent().get() == this);
+
+ CountedPtr<PortModel> pm = PtrCast<PortModel>(c);
+ assert(pm);
+ remove_port(pm);
+}
+
+
+void
NodeModel::add_port(CountedPtr<PortModel> pm)
{
assert(pm);