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>eventSourceprivate java.util.concurrent.ExecutorpreviousExecutorprivate java.util.concurrent.ScheduledExecutorServicepreviousSchedulerprivate PushStreamProviderpspprivate booleanunbuffered-
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 thisPushStreamBuilderto 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 theExecutorthat 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 thePushbackPolicyof this builderPushStreamBuilder<T,U>withPushbackPolicy(PushbackPolicyOption pushbackPolicyOption, long time)Set thePushbackPolicyof this builderPushStreamBuilder<T,U>withQueuePolicy(QueuePolicy<T,U> queuePolicy)Set theQueuePolicyof this BuilderPushStreamBuilder<T,U>withQueuePolicy(QueuePolicyOption queuePolicyOption)Set theQueuePolicyof this BuilderPushStreamBuilder<T,U>withScheduler(java.util.concurrent.ScheduledExecutorService scheduler)Set theScheduledExecutorServicethat 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:BufferBuilderThe BlockingQueue implementation to use as a buffer- Specified by:
withBufferin interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Specified by:
withBufferin interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Overrides:
withBufferin 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:BufferBuilderSet theQueuePolicyof this Builder- Specified by:
withQueuePolicyin interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Specified by:
withQueuePolicyin interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Overrides:
withQueuePolicyin 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:BufferBuilderSet theQueuePolicyof this Builder- Specified by:
withQueuePolicyin interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Specified by:
withQueuePolicyin interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Overrides:
withQueuePolicyin 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:BufferBuilderSet thePushbackPolicyof this builder- Specified by:
withPushbackPolicyin interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Specified by:
withPushbackPolicyin interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Overrides:
withPushbackPolicyin 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:BufferBuilderSet thePushbackPolicyof this builder- Specified by:
withPushbackPolicyin interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Specified by:
withPushbackPolicyin interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Overrides:
withPushbackPolicyin 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:BufferBuilderSet the maximum permitted number of concurrent event deliveries allowed from this buffer- Specified by:
withParallelismin interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Specified by:
withParallelismin interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Overrides:
withParallelismin 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:BufferBuilderSet theExecutorthat should be used to deliver events from this buffer- Specified by:
withExecutorin interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Specified by:
withExecutorin interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Overrides:
withExecutorin 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:BufferBuilderSet theScheduledExecutorServicethat should be used to trigger timed events after this buffer- Specified by:
withSchedulerin interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Specified by:
withSchedulerin interfacePushStreamBuilder<T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Overrides:
withSchedulerin 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: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 java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Returns:
- the builder
-
build
public PushStream<T> build()
- Specified by:
buildin interfaceBufferBuilder<PushStream<T>,T,U extends java.util.concurrent.BlockingQueue<PushEvent<? extends T>>>- Returns:
- the object being built
-
-