Package org.osgi.util.pushstream
Class PushStreamBuilderImpl<T,U extends java.util.concurrent.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 java.util.concurrent.BlockingQueue<PushEvent<? extends T>>> extends AbstractBufferBuilder<PushStream<T>,T,U> implements PushStreamBuilder<T,U>
-
-
Field Summary
Fields Modifier and Type Field Description private PushEventSource<T>
eventSource
private java.util.concurrent.Executor
previousExecutor
private java.util.concurrent.ScheduledExecutorService
previousScheduler
private PushStreamProvider
psp
private boolean
unbuffered
-
Fields inherited from class org.osgi.util.pushstream.AbstractBufferBuilder
backPressure, buffer, bufferingPolicy, concurrency, timer, worker
-
-
Constructor Summary
Constructors Constructor Description PushStreamBuilderImpl(PushStreamProvider psp, java.util.concurrent.Executor defaultExecutor, java.util.concurrent.ScheduledExecutorService defaultScheduler, PushEventSource<T> eventSource)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PushStream<T>
build()
PushStreamBuilder<T,U>
unbuffered()
Tells thisPushStreamBuilder
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 bufferPushStreamBuilder<T,U>
withExecutor(java.util.concurrent.Executor executor)
Set theExecutor
that should be used to deliver events from this bufferPushStreamBuilder<T,U>
withParallelism(int parallelism)
Set the maximum permitted number of concurrent event deliveries allowed from this bufferPushStreamBuilder<T,U>
withPushbackPolicy(PushbackPolicy<T,U> pushbackPolicy)
Set thePushbackPolicy
of this builderPushStreamBuilder<T,U>
withPushbackPolicy(PushbackPolicyOption pushbackPolicyOption, long time)
Set thePushbackPolicy
of this builderPushStreamBuilder<T,U>
withQueuePolicy(QueuePolicy<T,U> queuePolicy)
Set theQueuePolicy
of this BuilderPushStreamBuilder<T,U>
withQueuePolicy(QueuePolicyOption queuePolicyOption)
Set theQueuePolicy
of this BuilderPushStreamBuilder<T,U>
withScheduler(java.util.concurrent.ScheduledExecutorService scheduler)
Set theScheduledExecutorService
that should be used to trigger timed events after this buffer
-
-
-
Field Detail
-
psp
private final PushStreamProvider psp
-
eventSource
private final PushEventSource<T> eventSource
-
previousExecutor
private final java.util.concurrent.Executor previousExecutor
-
previousScheduler
private final java.util.concurrent.ScheduledExecutorService previousScheduler
-
unbuffered
private boolean unbuffered
-
-
Constructor Detail
-
PushStreamBuilderImpl
PushStreamBuilderImpl(PushStreamProvider psp, java.util.concurrent.Executor defaultExecutor, java.util.concurrent.ScheduledExecutorService defaultScheduler, PushEventSource<T> eventSource)
-
-
Method Detail
-
withBuffer
public PushStreamBuilder<T,U> withBuffer(U queue)
Description copied from interface:BufferBuilder
The BlockingQueue implementation to use as a buffer- Specified by:
withBuffer
in interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Specified by:
withBuffer
in interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Overrides:
withBuffer
in classAbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Returns:
- this builder
-
withQueuePolicy
public PushStreamBuilder<T,U> withQueuePolicy(QueuePolicy<T,U> queuePolicy)
Description copied from interface:BufferBuilder
Set theQueuePolicy
of this Builder- Specified by:
withQueuePolicy
in interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Specified by:
withQueuePolicy
in interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Overrides:
withQueuePolicy
in classAbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Returns:
- this builder
-
withQueuePolicy
public PushStreamBuilder<T,U> withQueuePolicy(QueuePolicyOption queuePolicyOption)
Description copied from interface:BufferBuilder
Set theQueuePolicy
of this Builder- Specified by:
withQueuePolicy
in interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Specified by:
withQueuePolicy
in interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Overrides:
withQueuePolicy
in classAbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Returns:
- this builder
-
withPushbackPolicy
public PushStreamBuilder<T,U> withPushbackPolicy(PushbackPolicy<T,U> pushbackPolicy)
Description copied from interface:BufferBuilder
Set thePushbackPolicy
of this builder- Specified by:
withPushbackPolicy
in interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Specified by:
withPushbackPolicy
in interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Overrides:
withPushbackPolicy
in classAbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- 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 java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Specified by:
withPushbackPolicy
in interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Overrides:
withPushbackPolicy
in classAbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Returns:
- this builder
-
withParallelism
public PushStreamBuilder<T,U> withParallelism(int parallelism)
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 java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Specified by:
withParallelism
in interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Overrides:
withParallelism
in classAbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Returns:
- this builder
-
withExecutor
public PushStreamBuilder<T,U> withExecutor(java.util.concurrent.Executor executor)
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 java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Specified by:
withExecutor
in interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Overrides:
withExecutor
in classAbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Returns:
- this builder
-
withScheduler
public PushStreamBuilder<T,U> withScheduler(java.util.concurrent.ScheduledExecutorService scheduler)
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 java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Specified by:
withScheduler
in interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Overrides:
withScheduler
in classAbstractBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Returns:
- this builder
-
unbuffered
public PushStreamBuilder<T,U> 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 java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Returns:
- the builder
-
build
public PushStream<T> build()
- Specified by:
build
in interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>
- Returns:
- the object being built
-
-