internal bool UnSubscribeFromSiloStatusEvents(ISiloStatusListener observer) { lock (statusListeners) { return(statusListeners.Contains(observer) && statusListeners.Remove(observer)); } }
internal bool SubscribeToSiloStatusEvents(ISiloStatusListener observer) { lock (statusListeners) { if (statusListeners.Contains(observer)) { return(false); } statusListeners.Add(observer); return(true); } }
public bool Unsubscribe(ISiloStatusListener listener) { lock (this.listenersLock) { for (var i = 0; i < this.listeners.Count; i++) { if (!this.listeners[i].TryGetTarget(out var existing)) { continue; } if (ReferenceEquals(existing, listener)) { this.listeners = this.listeners.RemoveAt(i); return(true); } } return(false); } }
public bool Subscribe(ISiloStatusListener listener) { lock (this.listenersLock) { foreach (var reference in this.listeners) { if (!reference.TryGetTarget(out var existing)) { continue; } if (ReferenceEquals(existing, listener)) { return(false); } } this.listeners = this.listeners.Add(new WeakReference <ISiloStatusListener>(listener)); return(true); } }
/// <summary> /// UnSubscribe from status events about all silos. /// </summary> /// <returns>bool value indicating that subscription succeeded or not.</returns> public bool UnSubscribeFromSiloStatusEvents(ISiloStatusListener observer) { this.subscribers.TryRemove(observer, out observer); return(true); }
/// <summary> /// Subscribe to status events about all silos. /// </summary> /// <param name="observer">An observer async interface to receive silo status notifications.</param> /// <returns>bool value indicating that subscription succeeded or not.</returns> public bool SubscribeToSiloStatusEvents(ISiloStatusListener observer) { this.subscribers[observer] = observer; return(true); }
public bool UnSubscribeFromSiloStatusEvents(ISiloStatusListener listener) => this.listenerManager.Unsubscribe(listener);
public bool SubscribeToSiloStatusEvents(ISiloStatusListener listener) => this.listenerManager.Subscribe(listener);
internal bool SubscribeToSiloStatusEvents(ISiloStatusListener observer) { lock (statusListeners) { if (statusListeners.Contains(observer)) return false; statusListeners.Add(observer); return true; } }
internal bool UnSubscribeFromSiloStatusEvents(ISiloStatusListener observer) { lock (statusListeners) { return statusListeners.Contains(observer) && statusListeners.Remove(observer); } }