public void Subscribe(ISubscriber <T> s) { if (s is IConditionalSubscriber <T> ) { var parent = new TimeoutConditionalSubscriber((IConditionalSubscriber <T>)s, firstTimeout, itemTimeout, fallback); s.OnSubscribe(parent); source.Subscribe(parent); } else { var parent = new TimeoutSubscriber(s, firstTimeout, itemTimeout, fallback); s.OnSubscribe(parent); source.Subscribe(parent); } }
internal FallbackSubscriber(TimeoutSubscriber parent) { this.actual = parent.actual; this.arbiter = parent; }
internal FallbackSubscriber(TimeoutSubscriber parent, ISubscriber <T> actual) { this.actual = actual; this.parent = parent; }