private TestStreamSubscriptionHandle <T> CreateEmptyStreamHandlerImpl( Action <IAsyncObserver <T> > onAttachingObserver = null) { TestStreamSubscriptionHandle <T> handle = null; handle = new TestStreamSubscriptionHandle <T>( Guid, Namespace, ProviderName, observer => { _handlers.Remove(handle); if (observer != null) { _observers.Remove(observer); } }, observer => { onAttachingObserver?.Invoke(observer); _observers.Add(observer); }, observer => { _observers.Remove(observer); }); return(handle); }
public Task <StreamSubscriptionHandle <T> > SubscribeAsync(IAsyncObserver <T> observer) { _observers.Add(observer); var handle = new TestStreamSubscriptionHandle <T>(() => _observers.Remove(observer)); return(Task.FromResult <StreamSubscriptionHandle <T> >(handle)); }
public Task <StreamSubscriptionHandle <T> > SubscribeAsync(IAsyncObserver <T> observer) { if (observer == null) { throw new ArgumentNullException(nameof(observer)); } TestStreamSubscriptionHandle <T> handle = null; handle = new TestStreamSubscriptionHandle <T>(() => { _observers.Remove(observer); _handlers.Remove(handle); }); _observers.Add(observer); _handlers.Add(handle); return(Task.FromResult <StreamSubscriptionHandle <T> >(handle)); }