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 FallbackConditionalSubscriber(TimeoutConditionalSubscriber parent, IConditionalSubscriber <T> actual) { this.actual = actual; this.parent = parent; }