class PushStreamBuilderImpl<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>> extends AbstractBufferBuilder<PushStream<T>,T,U> implements PushStreamBuilder<T,U>
| Modifier and Type | Field and Description |
|---|---|
private PushEventSource<T> |
eventSource |
private java.util.concurrent.Executor |
previousExecutor |
private java.util.concurrent.ScheduledExecutorService |
previousScheduler |
private PushStreamProvider |
psp |
private boolean |
unbuffered |
backPressure, buffer, bufferingPolicy, concurrency, timer, worker| Constructor and Description |
|---|
PushStreamBuilderImpl(PushStreamProvider psp,
java.util.concurrent.Executor defaultExecutor,
java.util.concurrent.ScheduledExecutorService defaultScheduler,
PushEventSource<T> eventSource) |
| Modifier and Type | Method and Description |
|---|---|
PushStream<T> |
build() |
PushStreamBuilder<T,U> |
unbuffered()
Tells this
PushStreamBuilder to create an unbuffered stream which
delivers events directly to its consumer using the incoming delivery
thread. |
PushStreamBuilder<T,U> |
withBuffer(U queue)
The BlockingQueue implementation to use as a buffer
|
PushStreamBuilder<T,U> |
withExecutor(java.util.concurrent.Executor executor)
Set the
Executor that should be used to deliver events from this
buffer |
PushStreamBuilder<T,U> |
withParallelism(int parallelism)
Set the maximum permitted number of concurrent event deliveries allowed
from this buffer
|
PushStreamBuilder<T,U> |
withPushbackPolicy(PushbackPolicy<T,U> pushbackPolicy)
Set the
PushbackPolicy of this builder |
PushStreamBuilder<T,U> |
withPushbackPolicy(PushbackPolicyOption pushbackPolicyOption,
long time)
Set the
PushbackPolicy of this builder |
PushStreamBuilder<T,U> |
withQueuePolicy(QueuePolicy<T,U> queuePolicy)
Set the
QueuePolicy of this Builder |
PushStreamBuilder<T,U> |
withQueuePolicy(QueuePolicyOption queuePolicyOption)
Set the
QueuePolicy of this Builder |
PushStreamBuilder<T,U> |
withScheduler(java.util.concurrent.ScheduledExecutorService scheduler)
Set the
ScheduledExecutorService that should be used to trigger
timed events after this buffer |
private final PushStreamProvider psp
private final PushEventSource<T> eventSource
private final java.util.concurrent.Executor previousExecutor
private final java.util.concurrent.ScheduledExecutorService previousScheduler
private boolean unbuffered
PushStreamBuilderImpl(PushStreamProvider psp, java.util.concurrent.Executor defaultExecutor, java.util.concurrent.ScheduledExecutorService defaultScheduler, PushEventSource<T> eventSource)
public PushStreamBuilder<T,U> withBuffer(U queue)
BufferBuilderwithBuffer in interface BufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withBuffer in interface PushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withBuffer in class AbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>public PushStreamBuilder<T,U> withQueuePolicy(QueuePolicy<T,U> queuePolicy)
BufferBuilderQueuePolicy of this BuilderwithQueuePolicy in interface BufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withQueuePolicy in interface PushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withQueuePolicy in class AbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>public PushStreamBuilder<T,U> withQueuePolicy(QueuePolicyOption queuePolicyOption)
BufferBuilderQueuePolicy of this BuilderwithQueuePolicy in interface BufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withQueuePolicy in interface PushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withQueuePolicy in class AbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>public PushStreamBuilder<T,U> withPushbackPolicy(PushbackPolicy<T,U> pushbackPolicy)
BufferBuilderPushbackPolicy of this builderwithPushbackPolicy in interface BufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withPushbackPolicy in interface PushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withPushbackPolicy in class AbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>public PushStreamBuilder<T,U> withPushbackPolicy(PushbackPolicyOption pushbackPolicyOption, long time)
BufferBuilderPushbackPolicy of this builderwithPushbackPolicy in interface BufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withPushbackPolicy in interface PushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withPushbackPolicy in class AbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>public PushStreamBuilder<T,U> withParallelism(int parallelism)
BufferBuilderwithParallelism in interface BufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withParallelism in interface PushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withParallelism in class AbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>public PushStreamBuilder<T,U> withExecutor(java.util.concurrent.Executor executor)
BufferBuilderExecutor that should be used to deliver events from this
bufferwithExecutor in interface BufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withExecutor in interface PushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withExecutor in class AbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>public PushStreamBuilder<T,U> withScheduler(java.util.concurrent.ScheduledExecutorService scheduler)
BufferBuilderScheduledExecutorService that should be used to trigger
timed events after this bufferwithScheduler in interface BufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withScheduler in interface PushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>withScheduler in class AbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>public PushStreamBuilder<T,U> unbuffered()
PushStreamBuilderPushStreamBuilder to create an unbuffered stream which
delivers events directly to its consumer using the incoming delivery
thread. Setting the PushStreamBuilder to be unbuffered means that
any buffer, queue policy or push back policy will be ignored. Note that
calling one of:
PushStreamBuilder.withBuffer(BlockingQueue)PushStreamBuilder.withQueuePolicy(QueuePolicy)PushStreamBuilder.withQueuePolicy(QueuePolicyOption)PushStreamBuilder.withPushbackPolicy(PushbackPolicy)PushStreamBuilder.withPushbackPolicy(PushbackPolicyOption, long)PushStreamBuilder.withParallelism(int)unbuffered in interface PushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>public PushStream<T> build()
build in interface BufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>