@Override public PushEventConsumer<T> build() { PushEventPipe<T> pipe = new PushEventPipe<>(); createStream(pipe, concurrency, worker, timer, buffer, bufferingPolicy, backPressure) .forEachEvent(delegate); return pipe; } };
@Override public <U extends BlockingQueue<PushEvent< ? extends T>>> PushStreamBuilder<T,U> buildBuffer() { return psp.buildStream(c -> { forEachEvent(c); return this; }); }
@Override public PushStream<T> buffer() { return psp.createStream(c -> { forEachEvent(c); return this; }); }
@Override public void close() { PushEvent<T> close = PushEvent.close(); if (close(close, true)) { upstreamClose(close); } }
@Override protected void upstreamClose(PushEvent< ? > close) { AbstractPushStreamImpl.this.upstreamClose(close); source.close(); } };
@Override protected boolean close(PushEvent<T> event, boolean sendDownStreamEvent) { if (super.close(event, sendDownStreamEvent)) { upstreamClose(event); return true; } return false; }
@Override public void error(Throwable t) { enqueueEvent(PushEvent.error(t)); }
@Override public PushEventConsumer<T> build() { PushEventPipe<T> pipe = new PushEventPipe<>(); createStream(pipe, concurrency, worker, timer, buffer, bufferingPolicy, backPressure) .forEachEvent(delegate); return pipe; } };
@Override public void close() { PushEvent<T> close = PushEvent.close(); if (close(close, true)) { upstreamClose(close); } }
@Override public <U extends BlockingQueue<PushEvent< ? extends T>>> PushStreamBuilder<T,U> buildBuffer() { return psp.buildStream(c -> { forEachEvent(c); return this; }); }
@Override public PushStream<T> buffer() { return psp.createStream(c -> { forEachEvent(c); return this; }); }
@Override protected void upstreamClose(PushEvent< ? > close) { AbstractPushStreamImpl.this.upstreamClose(close); source.close(); } };
@Override protected boolean close(PushEvent<T> event, boolean sendDownStreamEvent) { if (super.close(event, sendDownStreamEvent)) { upstreamClose(event); return true; } return false; }
@Override public PushEventConsumer<T> build() { PushEventPipe<T> pipe = new PushEventPipe<>(); createStream(pipe, concurrency, worker, timer, buffer, bufferingPolicy, backPressure) .forEachEvent(delegate); return pipe; } };
@Override public void close() { PushEvent<T> close = PushEvent.close(); if (close(close, true)) { upstreamClose(close); } }
@Override public <U extends BlockingQueue<PushEvent< ? extends T>>> PushStreamBuilder<T,U> buildBuffer() { return psp.buildStream(c -> { forEachEvent(c); return this; }); }
@Override public PushStream<T> buffer() { return psp.createStream(c -> { forEachEvent(c); return this; }); }
@Override protected void upstreamClose(PushEvent< ? > close) { AbstractPushStreamImpl.this.upstreamClose(close); source.close(); } };
@Override protected boolean close(PushEvent<T> event, boolean sendDownStreamEvent) { if (super.close(event, sendDownStreamEvent)) { upstreamClose(event); return true; } return false; }