Package io.prestosql.operator
Interface WorkProcessor<T>
-
public interface WorkProcessor<T>
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
WorkProcessor.Process<T>
static class
WorkProcessor.ProcessState<T>
static interface
WorkProcessor.Transformation<T,R>
static class
WorkProcessor.TransformationState<T>
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description static <T> WorkProcessor<T>
create(WorkProcessor.Process<T> process)
CreatesWorkProcessor
fromWorkProcessor.Process
.default WorkProcessor<T>
finishWhen(BooleanSupplier finishSignal)
default <R> WorkProcessor<R>
flatMap(Function<T,WorkProcessor<R>> mapper)
static <T> WorkProcessor<T>
flatten(WorkProcessor<WorkProcessor<T>> processor)
default <R> WorkProcessor<R>
flatTransform(WorkProcessor.Transformation<T,WorkProcessor<R>> transformation)
FlattensWorkProcessor
s returned by transformation.static <T> WorkProcessor<T>
fromIterable(Iterable<T> iterable)
static <T> WorkProcessor<T>
fromIterator(Iterator<T> iterator)
com.google.common.util.concurrent.ListenableFuture<?>
getBlockedFuture()
T
getResult()
Get the result once the unit of work is done and the processor hasn't finished.boolean
isBlocked()
boolean
isFinished()
default Iterator<T>
iterator()
ConvertsWorkProcessor
into anIterator
.default <R> WorkProcessor<R>
map(Function<T,R> mapper)
static <T> WorkProcessor<T>
mergeSorted(Iterable<WorkProcessor<T>> processorIterable, Comparator<T> comparator)
static <T> WorkProcessor<T>
of(T... elements)
boolean
process()
Call the method to progress the work.default <R> WorkProcessor<R>
transform(WorkProcessor.Transformation<T,R> transformation)
TransformsWorkProcessor
usingWorkProcessor.Transformation
.default <R> WorkProcessor<R>
transformProcessor(Function<WorkProcessor<T>,WorkProcessor<R>> transformation)
default WorkProcessor<T>
withProcessEntryMonitor(Runnable monitor)
default WorkProcessor<T>
withProcessStateMonitor(Consumer<WorkProcessor.ProcessState<T>> monitor)
default WorkProcessor<T>
yielding(BooleanSupplier yieldSignal)
MakesWorkProcessor
yield when givenyieldSignal
is set.default Iterator<Optional<T>>
yieldingIterator()
ConvertsWorkProcessor
into an yieldingIterator
.
-
-
-
Method Detail
-
process
boolean process()
Call the method to progress the work. When this method returns true then the processor is either finished or has a result available viagetResult()
. When this method returns false then the processor is either blocked or has yielded.
-
isBlocked
boolean isBlocked()
-
getBlockedFuture
com.google.common.util.concurrent.ListenableFuture<?> getBlockedFuture()
- Returns:
- a blocked future when
isBlocked()
returned true.
-
isFinished
boolean isFinished()
- Returns:
- true if the processor is finished. No more results are expected.
-
getResult
T getResult()
Get the result once the unit of work is done and the processor hasn't finished.
-
yielding
default WorkProcessor<T> yielding(BooleanSupplier yieldSignal)
MakesWorkProcessor
yield when givenyieldSignal
is set. The processor is guaranteed to progress computations on subsequentprocess()
calls even ifyieldSignal
is permanently on.
-
withProcessEntryMonitor
default WorkProcessor<T> withProcessEntryMonitor(Runnable monitor)
-
withProcessStateMonitor
default WorkProcessor<T> withProcessStateMonitor(Consumer<WorkProcessor.ProcessState<T>> monitor)
-
finishWhen
default WorkProcessor<T> finishWhen(BooleanSupplier finishSignal)
-
flatMap
default <R> WorkProcessor<R> flatMap(Function<T,WorkProcessor<R>> mapper)
-
map
default <R> WorkProcessor<R> map(Function<T,R> mapper)
-
flatTransform
default <R> WorkProcessor<R> flatTransform(WorkProcessor.Transformation<T,WorkProcessor<R>> transformation)
FlattensWorkProcessor
s returned by transformation. EachWorkProcessor
produced by transformation will be fully consumed before transformation is called again to produce more processors.
-
transform
default <R> WorkProcessor<R> transform(WorkProcessor.Transformation<T,R> transformation)
TransformsWorkProcessor
usingWorkProcessor.Transformation
.WorkProcessor.Transformation
instance will be dereferenced immediately afterWorkProcessor
is exhausted.
-
transformProcessor
default <R> WorkProcessor<R> transformProcessor(Function<WorkProcessor<T>,WorkProcessor<R>> transformation)
-
iterator
default Iterator<T> iterator()
ConvertsWorkProcessor
into anIterator
. The iterator will throwIllegalStateException
when underlyingWorkProcessor
yields or becomes blocked.WorkProcessor
instance will be dereferenced immediately after iterator is finished.
-
yieldingIterator
default Iterator<Optional<T>> yieldingIterator()
ConvertsWorkProcessor
into an yieldingIterator
. The iterator will throwIllegalStateException
when underlyingWorkProcessor
becomes blocked.WorkProcessor
instance will be dereferenced immediately after iterator is exhausted.
-
flatten
static <T> WorkProcessor<T> flatten(WorkProcessor<WorkProcessor<T>> processor)
-
of
@SafeVarargs static <T> WorkProcessor<T> of(T... elements)
-
fromIterable
static <T> WorkProcessor<T> fromIterable(Iterable<T> iterable)
-
fromIterator
static <T> WorkProcessor<T> fromIterator(Iterator<T> iterator)
-
create
static <T> WorkProcessor<T> create(WorkProcessor.Process<T> process)
CreatesWorkProcessor
fromWorkProcessor.Process
.WorkProcessor.Process
instance will be dereferenced immediately afterWorkProcessor
is finished.
-
mergeSorted
static <T> WorkProcessor<T> mergeSorted(Iterable<WorkProcessor<T>> processorIterable, Comparator<T> comparator)
-
-