Example #1
0
        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));
        }
Example #3
0
        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));
        }