Esempio n. 1
0
        public static async Task MonitorReader(IReader reader, IHandleStateChanged <ReaderStateChanged> handler)
        {
            await Task.Yield();

            var state = ReaderState.Disconnected;

            while (!reader.IsFinalState(state))
            {
                var stateChanged = await reader.StateChangedFrom(state, handler.CancellationToken).ConfigureAwait(false);

                state = stateChanged.ReaderState;
                try
                {
                    await handler.OnStateChanged(stateChanged, handler.CancellationToken).ConfigureAwait(false);
                }
                catch
                {
                    // Ignore
                }
            }
        }
Esempio n. 2
0
 public IReaderBuilder <TMessage> StateChangedHandler(IHandleStateChanged <ReaderStateChanged> handler)
 {
     _stateChangedHandler = handler;
     return(this);
 }
Esempio n. 3
0
 public IProducerBuilder StateChangedHandler(Func <ProducerStateChanged, CancellationToken, ValueTask> handler, CancellationToken cancellationToken)
 {
     _stateChangedHandler = new FuncStateChangedHandler <ProducerStateChanged>(handler, cancellationToken);
     return(this);
 }
Esempio n. 4
0
 public IProducerBuilder StateChangedHandler(Action <ProducerStateChanged, CancellationToken> handler, CancellationToken cancellationToken)
 {
     _stateChangedHandler = new ActionStateChangedHandler <ProducerStateChanged>(handler, cancellationToken);
     return(this);
 }
Esempio n. 5
0
 public IProducerBuilder StateChangedHandler(IHandleStateChanged <ProducerStateChanged> handler)
 {
     _stateChangedHandler = handler;
     return(this);
 }
 public IConsumerBuilder StateChangedHandler(IHandleStateChanged <ConsumerStateChanged> handler)
 {
     _stateChangedHandler = handler;
     return(this);
 }