Class PushStreamProvider.MultiplexingConsumer<T>

    • Field Detail

      • terminalEventStore

        private final java.util.concurrent.atomic.AtomicReference<PushEvent<T>> terminalEventStore
      • consumers

        private final java.util.concurrent.CopyOnWriteArrayList<PushEventConsumer<? super T>> consumers
    • Constructor Detail

      • MultiplexingConsumer

        public MultiplexingConsumer​(java.util.concurrent.atomic.AtomicReference<PushEvent<T>> terminalEventStore,
                                    java.util.concurrent.CopyOnWriteArrayList<PushEventConsumer<? super T>> consumers)
    • Method Detail

      • accept

        public long accept​(PushEvent<? extends T> event)
                    throws java.lang.Exception
        Description copied from interface: PushEventConsumer
        Accept an event from a source. Events can be delivered on multiple threads simultaneously. However, Close and Error events are the last events received, no more events must be sent after them.
        Specified by:
        accept in interface PushEventConsumer<T>
        Parameters:
        event - The event
        Returns:
        less than 0 means abort, 0 means continue, more than 0 means delay ms
        Throws:
        java.lang.Exception - to indicate that an error has occurred and that no further events should be delivered to this PushEventConsumer