public Task OnErrorAsync(Exception ex) { IInternalAsyncBatchObserver <T> producerInterface = GetProducerInterface(); var observer = producerInterface as IAsyncObserver <T>; var batchObserver = producerInterface as IAsyncBatchObserver <T>; return(Task.WhenAll(observer.OnErrorAsync(ex), batchObserver.OnErrorAsync(ex))); }
public Task OnCompletedAsync() { IInternalAsyncBatchObserver <T> producerInterface = GetProducerInterface(); var observer = producerInterface as IAsyncObserver <T>; var batchObserver = producerInterface as IAsyncBatchObserver <T>; return(Task.WhenAll(observer.OnCompletedAsync(), batchObserver.OnCompletedAsync())); }
internal StreamImpl(InternalStreamId streamId, IInternalStreamProvider provider, bool isRewindable, IRuntimeClient runtimeClient) { this.streamId = streamId; this.provider = provider ?? throw new ArgumentNullException(nameof(provider)); this.runtimeClient = runtimeClient ?? throw new ArgumentNullException(nameof(runtimeClient)); producerInterface = null; consumerInterface = null; initLock = new object(); this.isRewindable = isRewindable; }
public async Task Cleanup(bool cleanupProducers, bool cleanupConsumers) { // Cleanup producers if (cleanupProducers && producerInterface != null) { await producerInterface.Cleanup(); producerInterface = null; } // Cleanup consumers if (cleanupConsumers && consumerInterface != null) { await consumerInterface.Cleanup(); consumerInterface = null; } }
internal StreamImpl(StreamId streamId, IInternalStreamProvider provider, bool isRewindable) { if (null == streamId) { throw new ArgumentNullException("streamId"); } if (null == provider) { throw new ArgumentNullException("provider"); } this.streamId = streamId; this.provider = provider; producerInterface = null; consumerInterface = null; initLock = new object(); this.isRewindable = isRewindable; }
internal IInternalAsyncBatchObserver <T> GetProducerInterface() { if (producerInterface != null) { return(producerInterface); } lock (initLock) { if (producerInterface != null) { return(producerInterface); } if (provider == null) { provider = GetStreamProvider(); } producerInterface = provider.GetProducerInterface(this); } return(producerInterface); }
public Task OnErrorAsync(Exception ex) { IInternalAsyncBatchObserver <T> producerInterface = GetProducerInterface(); return(producerInterface.OnErrorAsync(ex)); }
public Task OnCompletedAsync() { IInternalAsyncBatchObserver <T> producerInterface = GetProducerInterface(); return(producerInterface.OnCompletedAsync()); }