Package org.osgi.util.pushstream
Class PushStreamBuilderImpl<T,U extends BlockingQueue<PushEvent<? extends T>>>
java.lang.Object
org.osgi.util.pushstream.AbstractBufferBuilder<PushStream<T>,T,U>
org.osgi.util.pushstream.PushStreamBuilderImpl<T,U>
- All Implemented Interfaces:
BufferBuilder<PushStream<T>,
,T, U> PushStreamBuilder<T,
U>
class PushStreamBuilderImpl<T,U extends BlockingQueue<PushEvent<? extends T>>>
extends AbstractBufferBuilder<PushStream<T>,T,U>
implements PushStreamBuilder<T,U>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final PushEventSource
<T> private final Executor
private final ScheduledExecutorService
private final PushStreamProvider
private boolean
Fields inherited from class org.osgi.util.pushstream.AbstractBufferBuilder
backPressure, buffer, bufferingPolicy, concurrency, timer, worker
-
Constructor Summary
ConstructorsConstructorDescriptionPushStreamBuilderImpl
(PushStreamProvider psp, Executor defaultExecutor, ScheduledExecutorService defaultScheduler, PushEventSource<T> eventSource) -
Method Summary
Modifier and TypeMethodDescriptionbuild()
Tells thisPushStreamBuilder
to create an unbuffered stream which delivers events directly to its consumer using the incoming delivery thread.withBuffer
(U queue) The BlockingQueue implementation to use as a bufferwithExecutor
(Executor executor) Set theExecutor
that should be used to deliver events from this bufferwithParallelism
(int parallelism) Set the maximum permitted number of concurrent event deliveries allowed from this bufferwithPushbackPolicy
(PushbackPolicy<T, U> pushbackPolicy) Set thePushbackPolicy
of this builderwithPushbackPolicy
(PushbackPolicyOption pushbackPolicyOption, long time) Set thePushbackPolicy
of this builderwithQueuePolicy
(QueuePolicy<T, U> queuePolicy) Set theQueuePolicy
of this BuilderwithQueuePolicy
(QueuePolicyOption queuePolicyOption) Set theQueuePolicy
of this BuilderwithScheduler
(ScheduledExecutorService scheduler) Set theScheduledExecutorService
that should be used to trigger timed events after this buffer
-
Field Details
-
psp
-
eventSource
-
previousExecutor
-
previousScheduler
-
unbuffered
private boolean unbuffered
-
-
Constructor Details
-
PushStreamBuilderImpl
PushStreamBuilderImpl(PushStreamProvider psp, Executor defaultExecutor, ScheduledExecutorService defaultScheduler, PushEventSource<T> eventSource)
-
-
Method Details
-
withBuffer
Description copied from interface:BufferBuilder
The BlockingQueue implementation to use as a buffer- Specified by:
withBuffer
in interfaceBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withBuffer
in interfacePushStreamBuilder<T,
U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withBuffer
in classAbstractBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
queue
-- Returns:
- this builder
-
withQueuePolicy
Description copied from interface:BufferBuilder
Set theQueuePolicy
of this Builder- Specified by:
withQueuePolicy
in interfaceBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withQueuePolicy
in interfacePushStreamBuilder<T,
U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withQueuePolicy
in classAbstractBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
queuePolicy
-- Returns:
- this builder
-
withQueuePolicy
Description copied from interface:BufferBuilder
Set theQueuePolicy
of this Builder- Specified by:
withQueuePolicy
in interfaceBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withQueuePolicy
in interfacePushStreamBuilder<T,
U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withQueuePolicy
in classAbstractBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
queuePolicyOption
-- Returns:
- this builder
-
withPushbackPolicy
Description copied from interface:BufferBuilder
Set thePushbackPolicy
of this builder- Specified by:
withPushbackPolicy
in interfaceBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withPushbackPolicy
in interfacePushStreamBuilder<T,
U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withPushbackPolicy
in classAbstractBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
pushbackPolicy
-- Returns:
- this builder
-
withPushbackPolicy
public PushStreamBuilder<T,U> withPushbackPolicy(PushbackPolicyOption pushbackPolicyOption, long time) Description copied from interface:BufferBuilder
Set thePushbackPolicy
of this builder- Specified by:
withPushbackPolicy
in interfaceBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withPushbackPolicy
in interfacePushStreamBuilder<T,
U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withPushbackPolicy
in classAbstractBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
pushbackPolicyOption
-time
-- Returns:
- this builder
-
withParallelism
Description copied from interface:BufferBuilder
Set the maximum permitted number of concurrent event deliveries allowed from this buffer- Specified by:
withParallelism
in interfaceBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withParallelism
in interfacePushStreamBuilder<T,
U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withParallelism
in classAbstractBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
parallelism
-- Returns:
- this builder
-
withExecutor
Description copied from interface:BufferBuilder
Set theExecutor
that should be used to deliver events from this buffer- Specified by:
withExecutor
in interfaceBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withExecutor
in interfacePushStreamBuilder<T,
U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withExecutor
in classAbstractBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
executor
-- Returns:
- this builder
-
withScheduler
Description copied from interface:BufferBuilder
Set theScheduledExecutorService
that should be used to trigger timed events after this buffer- Specified by:
withScheduler
in interfaceBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withScheduler
in interfacePushStreamBuilder<T,
U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withScheduler
in classAbstractBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
scheduler
-- Returns:
- this builder
-
unbuffered
Description copied from interface:PushStreamBuilder
Tells thisPushStreamBuilder
to create an unbuffered stream which delivers events directly to its consumer using the incoming delivery thread. Setting thePushStreamBuilder
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)
- Specified by:
unbuffered
in interfacePushStreamBuilder<T,
U extends BlockingQueue<PushEvent<? extends T>>> - Returns:
- the builder
-
build
- Specified by:
build
in interfaceBufferBuilder<PushStream<T>,
T, U extends BlockingQueue<PushEvent<? extends T>>> - Returns:
- the object being built
-