Class SyncOnSubscribe.SyncOnSubscribeImpl<S,T>

java.lang.Object
rx.observables.SyncOnSubscribe<S,T>
rx.observables.SyncOnSubscribe.SyncOnSubscribeImpl<S,T>
Type Parameters:
S - the type of the user-defined state
T - the type of compatible Subscribers
All Implemented Interfaces:
Action, Action1<Subscriber<? super T>>, Function, Observable.OnSubscribe<T>
Enclosing class:
SyncOnSubscribe<S,T>

static final class SyncOnSubscribe.SyncOnSubscribeImpl<S,T> extends SyncOnSubscribe<S,T>
An implementation of SyncOnSubscribe that delegates
invalid reference
SyncOnSubscribe#next(Object, Subscriber)
, SyncOnSubscribe.generateState(), and SyncOnSubscribe.onUnsubscribe(Object) to provided functions/closures.
  • Field Details

    • generator

      private final Func0<? extends S> generator
    • next

      private final Func2<? super S,? super Observer<? super T>,? extends S> next
    • onUnsubscribe

      private final Action1<? super S> onUnsubscribe
  • Constructor Details

    • SyncOnSubscribeImpl

      SyncOnSubscribeImpl(Func0<? extends S> generator, Func2<? super S,? super Observer<? super T>,? extends S> next, Action1<? super S> onUnsubscribe)
    • SyncOnSubscribeImpl

      public SyncOnSubscribeImpl(Func0<? extends S> generator, Func2<? super S,? super Observer<? super T>,? extends S> next)
    • SyncOnSubscribeImpl

      public SyncOnSubscribeImpl(Func2<S,Observer<? super T>,S> next, Action1<? super S> onUnsubscribe)
    • SyncOnSubscribeImpl

      public SyncOnSubscribeImpl(Func2<S,Observer<? super T>,S> nextFunc)
  • Method Details

    • generateState

      protected S generateState()
      Description copied from class: SyncOnSubscribe
      Executed once when subscribed to by a subscriber (via SyncOnSubscribe.call(Subscriber)) to produce a state value. This value is passed into next(S state, Observer observer) on the first iteration. Subsequent iterations of next will receive the state returned by the previous invocation of next.
      Specified by:
      generateState in class SyncOnSubscribe<S,T>
      Returns:
      the initial state value
    • next

      protected S next(S state, Observer<? super T> observer)
      Description copied from class: SyncOnSubscribe
      Called to produce data to the downstream subscribers. To emit data to a downstream subscriber call observer.onNext(t). To signal an error condition call observer.onError(throwable) or throw an Exception. To signal the end of a data stream call observer.onCompleted(). Implementations of this method must follow the following rules.
      • Must not call observer.onNext(t) more than 1 time per invocation.
      • Must not call observer.onNext(t) concurrently.
      The value returned from an invocation of this method will be passed in as the state argument of the next invocation of this method.
      Specified by:
      next in class SyncOnSubscribe<S,T>
      Parameters:
      state - the state value (from SyncOnSubscribe.generateState() on the first invocation or the previous invocation of this method.
      observer - the observer of data emitted by
      Returns:
      the next iteration's state value
    • onUnsubscribe

      protected void onUnsubscribe(S state)
      Description copied from class: SyncOnSubscribe
      Clean up behavior that is executed after the downstream subscriber's subscription is unsubscribed. This method will be invoked exactly once.
      Overrides:
      onUnsubscribe in class SyncOnSubscribe<S,T>
      Parameters:
      state - the last state value prior from SyncOnSubscribe.generateState() or next(S, Observer<T>) before unsubscribe.