From de133218dab0ac1729dbfc32177979133c15f53b Mon Sep 17 00:00:00 2001 From: fiaxh Date: Tue, 21 Nov 2017 23:27:27 +0100 Subject: Disconnect stanza listeners from pipeline --- xmpp-vala/src/module/util.vala | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'xmpp-vala/src/module/util.vala') diff --git a/xmpp-vala/src/module/util.vala b/xmpp-vala/src/module/util.vala index e6626049..812b09ad 100644 --- a/xmpp-vala/src/module/util.vala +++ b/xmpp-vala/src/module/util.vala @@ -30,13 +30,18 @@ public abstract class StanzaListener : Object { } public class StanzaListenerHolder : Object { - private Gee.List> listeners = new ArrayList>(); + private ArrayList> listeners = new ArrayList>(); public new void connect(StanzaListener listener) { listeners.add(listener); resort_list(); } + public new void disconnect(StanzaListener listener) { + listeners.remove(listener); + resort_list(); + } + public async void run(Core.XmppStream stream, T stanza) { foreach (StanzaListener l in listeners) { yield l.run(stream, stanza); @@ -63,7 +68,7 @@ public class StanzaListenerHolder : Object { } private void resort_list() { - Gee.List> new_list = new ArrayList>(); + ArrayList> new_list = new ArrayList>(); while (listeners.size > new_list.size) { bool changed = false; foreach (StanzaListener l in listeners) { -- cgit v1.2.3-54-g00ecf