public Reader( Guid correlationId, IRegisterEvent eventRegister, IReaderChannel initialChannel, IExecute executor, IStateChanged <ReaderState> state) { _correlationId = correlationId; _eventRegister = eventRegister; _channel = initialChannel; _executor = executor; _state = state; _isDisposed = 0; _eventRegister.Register(new ReaderCreated(_correlationId, this)); }
internal async ValueTask SetChannel(IReaderChannel channel) { if (_isDisposed != 0) { await channel.DisposeAsync().ConfigureAwait(false); return; } var oldChannel = _channel; _channel = channel; if (oldChannel != null) { await oldChannel.DisposeAsync().ConfigureAwait(false); } }
internal void SetChannel(IReaderChannel channel) { ThrowIfDisposed(); _channel = channel; }