public class FrameChannelBatcher extends Object implements FrameProcessor<Pair<List<Frame>,it.unimi.dsi.fastutil.ints.IntSet>>
| Constructor and Description |
|---|
FrameChannelBatcher(List<ReadableFrameChannel> channels,
int maxFrames) |
| Modifier and Type | Method and Description |
|---|---|
void |
cleanup()
Closes resources used by this worker.
|
List<ReadableFrameChannel> |
inputChannels()
List of input channels.
|
List<WritableFrameChannel> |
outputChannels()
List of output channels.
|
ReturnOrAwait<Pair<List<Frame>,it.unimi.dsi.fastutil.ints.IntSet>> |
runIncrementally(it.unimi.dsi.fastutil.ints.IntSet readableInputs)
Runs some of the algorithm, without blocking, and either returns a value or a set of input channels
to wait for.
|
public FrameChannelBatcher(List<ReadableFrameChannel> channels, int maxFrames)
public List<ReadableFrameChannel> inputChannels()
FrameProcessorreadableInputs set
provided to FrameProcessor.runIncrementally(it.unimi.dsi.fastutil.ints.IntSet).inputChannels in interface FrameProcessor<Pair<List<Frame>,it.unimi.dsi.fastutil.ints.IntSet>>public List<WritableFrameChannel> outputChannels()
FrameProcessoroutputChannels in interface FrameProcessor<Pair<List<Frame>,it.unimi.dsi.fastutil.ints.IntSet>>public ReturnOrAwait<Pair<List<Frame>,it.unimi.dsi.fastutil.ints.IntSet>> runIncrementally(it.unimi.dsi.fastutil.ints.IntSet readableInputs)
FrameProcessorFrameProcessorExecutor.runFully(org.apache.druid.frame.processor.FrameProcessor<T>, java.lang.String) when all output channels are
writable. Therefore, it is guaranteed that each output channel can accept at least one frame.
This method must not read more than one frame from each readable input channel, and must not write more than one
frame to each output channel.runIncrementally in interface FrameProcessor<Pair<List<Frame>,it.unimi.dsi.fastutil.ints.IntSet>>readableInputs - channels from FrameProcessor.inputChannels() that are either finished or ready to read.
That is: either ReadableFrameChannel.isFinished() or
ReadableFrameChannel.canRead() are true.public void cleanup()
FrameProcessorCloseable.close(). This interface does not extend Closeable, in order to
make it easier to find all places where cleanup happens. (Static analysis tools can lose the thread when Closeables
are closed in generic ways.)
Implementations typically call ReadableFrameChannel.close() and
WritableFrameChannel.close() on all input and output channels, as well as releasing any additional
resources that may be held.
In cases of cancellation, this method may be called even if FrameProcessor.runIncrementally(it.unimi.dsi.fastutil.ints.IntSet) has not yet returned a
result via ReturnOrAwait.returnObject(T).cleanup in interface FrameProcessor<Pair<List<Frame>,it.unimi.dsi.fastutil.ints.IntSet>>Copyright © 2011–2022 The Apache Software Foundation. All rights reserved.