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 Executorprivate final ScheduledExecutorServiceprivate final PushStreamProviderprivate booleanFields 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 thisPushStreamBuilderto 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 theExecutorthat 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 thePushbackPolicyof this builderwithPushbackPolicy(PushbackPolicyOption pushbackPolicyOption, long time) Set thePushbackPolicyof this builderwithQueuePolicy(QueuePolicy<T, U> queuePolicy) Set theQueuePolicyof this BuilderwithQueuePolicy(QueuePolicyOption queuePolicyOption) Set theQueuePolicyof this BuilderwithScheduler(ScheduledExecutorService scheduler) Set theScheduledExecutorServicethat 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:BufferBuilderThe BlockingQueue implementation to use as a buffer- Specified by:
withBufferin interfaceBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withBufferin interfacePushStreamBuilder<T,U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withBufferin classAbstractBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
queue-- Returns:
- this builder
-
withQueuePolicy
Description copied from interface:BufferBuilderSet theQueuePolicyof this Builder- Specified by:
withQueuePolicyin interfaceBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withQueuePolicyin interfacePushStreamBuilder<T,U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withQueuePolicyin classAbstractBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
queuePolicy-- Returns:
- this builder
-
withQueuePolicy
Description copied from interface:BufferBuilderSet theQueuePolicyof this Builder- Specified by:
withQueuePolicyin interfaceBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withQueuePolicyin interfacePushStreamBuilder<T,U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withQueuePolicyin classAbstractBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
queuePolicyOption-- Returns:
- this builder
-
withPushbackPolicy
Description copied from interface:BufferBuilderSet thePushbackPolicyof this builder- Specified by:
withPushbackPolicyin interfaceBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withPushbackPolicyin interfacePushStreamBuilder<T,U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withPushbackPolicyin 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:BufferBuilderSet thePushbackPolicyof this builder- Specified by:
withPushbackPolicyin interfaceBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withPushbackPolicyin interfacePushStreamBuilder<T,U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withPushbackPolicyin classAbstractBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
pushbackPolicyOption-time-- Returns:
- this builder
-
withParallelism
Description copied from interface:BufferBuilderSet the maximum permitted number of concurrent event deliveries allowed from this buffer- Specified by:
withParallelismin interfaceBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withParallelismin interfacePushStreamBuilder<T,U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withParallelismin classAbstractBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
parallelism-- Returns:
- this builder
-
withExecutor
Description copied from interface:BufferBuilderSet theExecutorthat should be used to deliver events from this buffer- Specified by:
withExecutorin interfaceBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withExecutorin interfacePushStreamBuilder<T,U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withExecutorin classAbstractBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
executor-- Returns:
- this builder
-
withScheduler
Description copied from interface:BufferBuilderSet theScheduledExecutorServicethat should be used to trigger timed events after this buffer- Specified by:
withSchedulerin interfaceBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Specified by:
withSchedulerin interfacePushStreamBuilder<T,U extends BlockingQueue<PushEvent<? extends T>>> - Overrides:
withSchedulerin classAbstractBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Parameters:
scheduler-- Returns:
- this builder
-
unbuffered
Description copied from interface:PushStreamBuilderTells thisPushStreamBuilderto create an unbuffered stream which delivers events directly to its consumer using the incoming delivery thread. Setting thePushStreamBuilderto 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:
unbufferedin interfacePushStreamBuilder<T,U extends BlockingQueue<PushEvent<? extends T>>> - Returns:
- the builder
-
build
- Specified by:
buildin interfaceBufferBuilder<PushStream<T>,T, U extends BlockingQueue<PushEvent<? extends T>>> - Returns:
- the object being built
-