public void Unsubscribe(IVariableListener listener) { for (var i = 0; i < _listeners.Count; i++) { if (_listeners[i].Interface == listener) { _listeners.RemoveAt(i); break; } } }
protected internal virtual void AddListenerToMap(IDictionary <string, IList <IVariableListener <IDelegateVariableInstance <IBaseDelegateExecution> > > > listenerMap, string eventName, IVariableListener <IDelegateVariableInstance <IBaseDelegateExecution> > listener, int index) { IList <IVariableListener <IDelegateVariableInstance <IBaseDelegateExecution> > > listeners; listenerMap.TryGetValue(eventName, out listeners); if (listeners == null) { listeners = new List <IVariableListener <IDelegateVariableInstance <IBaseDelegateExecution> > >(); listenerMap[eventName] = listeners; } if (index < 0) { listeners.Add(listener); } else { listeners.Insert(index, listener); } }
public VariableListener(IVariableListener listener, IMappedVariableList list) { _listener = listener; _list = list; }
public virtual void AddBuiltInVariableListener(string eventName, IVariableListener <IDelegateVariableInstance <IBaseDelegateExecution> > listener, int index) { AddListenerToMap(variableListeners, eventName, listener, index); AddListenerToMap(builtInVariableListeners, eventName, listener, index); }
public virtual void AddBuiltInVariableListener(string eventName, IVariableListener <IDelegateVariableInstance <IBaseDelegateExecution> > listener) { AddBuiltInVariableListener(eventName, listener, -1); }
public void Subscribe(IVariableListener listener, object owner) { _listeners.Add(new Listener { Interface = listener, Owner = owner }); }