summaryrefslogtreecommitdiffstats
path: root/src/engine/PatchImpl.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2010-02-25 03:40:39 +0000
committerDavid Robillard <d@drobilla.net>2010-02-25 03:40:39 +0000
commite22984efe9b82ab006494aea93814a592cd44ece (patch)
treea9b1b317515b9fda4947d4fb9c2bc460e07b0c32 /src/engine/PatchImpl.hpp
parent5d87212114e2df68a086eeb55829a70bed0940d3 (diff)
downloadingen-e22984efe9b82ab006494aea93814a592cd44ece.tar.gz
ingen-e22984efe9b82ab006494aea93814a592cd44ece.tar.bz2
ingen-e22984efe9b82ab006494aea93814a592cd44ece.zip
Store patch connections in a map using a lexicographic <Port*,Port*> key for
fast (logarathmic) connection searching. Replaces all O(num_connections) searches with O(lg(num_connections)) searches. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@2491 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/PatchImpl.hpp')
-rw-r--r--src/engine/PatchImpl.hpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/engine/PatchImpl.hpp b/src/engine/PatchImpl.hpp
index ff2f0631..9bc2614d 100644
--- a/src/engine/PatchImpl.hpp
+++ b/src/engine/PatchImpl.hpp
@@ -102,8 +102,9 @@ public:
Raul::List<PortImpl*>::Node* remove_port(const std::string& name);
void clear_ports();
- void add_connection(Connections::Node* c) { _connections.push_back(c); }
- Connections::Node* remove_connection(const PortImpl* src_port, const PortImpl* dst_port);
+ void add_connection(SharedPtr<ConnectionImpl> c);
+
+ SharedPtr<ConnectionImpl> remove_connection(const PortImpl* src_port, const PortImpl* dst_port);
bool has_connection(const PortImpl* src_port, const PortImpl* dst_port) const;