Package rx.subjects

Class SubjectSubscriptionManager.SubjectObserver<T>

  • Type Parameters:
    T - the consumed value type of the actual Observer
    All Implemented Interfaces:
    Observer<T>
    Enclosing class:
    SubjectSubscriptionManager<T>

    protected static final class SubjectSubscriptionManager.SubjectObserver<T>
    extends java.lang.Object
    implements Observer<T>
    Observer wrapping the actual Subscriber and providing various emission facilities.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) Subscriber<? super T> actual
      The actual Observer.
      (package private) boolean caughtUp
      Indicate that the observer has caught up.
      (package private) boolean emitting
      Guarded by this.
      (package private) boolean fastPath  
      (package private) boolean first
      Was the emitFirst run? Guarded by this.
      private java.lang.Object index
      Indicate where the observer is at replaying.
      (package private) java.util.List<java.lang.Object> queue
      Guarded by this.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) void accept​(java.lang.Object n, NotificationLite<T> nl)
      Dispatches a NotificationLite value to the actual Observer.
      (package private) void emitFirst​(java.lang.Object n, NotificationLite<T> nl)
      Tries to emit a NotificationLite value as the first value and drains the queue as long as possible.
      (package private) void emitLoop​(java.util.List<java.lang.Object> localQueue, java.lang.Object current, NotificationLite<T> nl)
      Emits the contents of the queue as long as there are values.
      (package private) void emitNext​(java.lang.Object n, NotificationLite<T> nl)
      Emits the given NotificationLite value and prevents the emitFirst to run if not already run.
      (package private) Observer<? super T> getActual()  
      <I> I index()
      Returns the stored index.
      void index​(java.lang.Object newIndex)
      Sets a new index value.
      void onCompleted()
      Notifies the Observer that the Observable has finished sending push-based notifications.
      void onError​(java.lang.Throwable e)
      Notifies the Observer that the Observable has experienced an error condition.
      void onNext​(T t)
      Provides the Observer with a new item to observe.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • actual

        final Subscriber<? super T> actual
        The actual Observer.
      • first

        boolean first
        Was the emitFirst run? Guarded by this.
      • emitting

        boolean emitting
        Guarded by this.
      • queue

        java.util.List<java.lang.Object> queue
        Guarded by this.
      • fastPath

        boolean fastPath
      • caughtUp

        volatile boolean caughtUp
        Indicate that the observer has caught up.
      • index

        private volatile java.lang.Object index
        Indicate where the observer is at replaying.
    • Constructor Detail

      • SubjectObserver

        public SubjectObserver​(Subscriber<? super T> actual)
    • Method Detail

      • emitNext

        void emitNext​(java.lang.Object n,
                      NotificationLite<T> nl)
        Emits the given NotificationLite value and prevents the emitFirst to run if not already run.
        Parameters:
        n - the NotificationLite value
        nl - the type-appropriate notification lite object
      • emitFirst

        void emitFirst​(java.lang.Object n,
                       NotificationLite<T> nl)
        Tries to emit a NotificationLite value as the first value and drains the queue as long as possible.
        Parameters:
        n - the NotificationLite value
        nl - the type-appropriate notification lite object
      • emitLoop

        void emitLoop​(java.util.List<java.lang.Object> localQueue,
                      java.lang.Object current,
                      NotificationLite<T> nl)
        Emits the contents of the queue as long as there are values.
        Parameters:
        localQueue - the initial queue contents
        current - the current content to emit
        nl - the type-appropriate notification lite object
      • accept

        void accept​(java.lang.Object n,
                    NotificationLite<T> nl)
        Dispatches a NotificationLite value to the actual Observer.
        Parameters:
        n - the value to dispatch
        nl - the type-appropriate notification lite object
      • getActual

        Observer<? super T> getActual()
        Returns:
        the actual Observer.
      • index

        public <I> I index()
        Returns the stored index.
        Type Parameters:
        I - the index type
        Returns:
        the index value
      • index

        public void index​(java.lang.Object newIndex)
        Sets a new index value.
        Parameters:
        newIndex - the new index value