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)
BufferBuilder
withBuffer
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)
BufferBuilder
QueuePolicy
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)
BufferBuilder
QueuePolicy
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)
BufferBuilder
PushbackPolicy
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)
BufferBuilder
PushbackPolicy
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)
BufferBuilder
withParallelism
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)
BufferBuilder
Executor
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)
BufferBuilder
ScheduledExecutorService
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()
PushStreamBuilder
PushStreamBuilder
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>>>