Class ReorderingConcurrentResultBuffer
- java.lang.Object
-
- io.engineblock.activityapi.cyclelog.outputs.ReorderingConcurrentResultBuffer
-
- All Implemented Interfaces:
CanFilterResultValue,Output,java.lang.AutoCloseable
public class ReorderingConcurrentResultBuffer extends java.lang.Object implements Output, CanFilterResultValue
This will implement a result buffer that puts cycles in order when possible, according to a sliding window.
-
-
Constructor Summary
Constructors Constructor Description ReorderingConcurrentResultBuffer(Output downstream)ReorderingConcurrentResultBuffer(Output downstream, int threshold)
-
Method Summary
Modifier and Type Method Description voidclose()booleanonCycleResult(long completedCycle, int result)Mark the result of the numbered cycle with an integer value.voidonCycleResultSegment(CycleResultsSegment segment)voidsetFilter(java.util.function.Predicate<ResultReadable> filter)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.engineblock.activityapi.output.Output
onCycleResult
-
-
-
-
Method Detail
-
onCycleResult
public boolean onCycleResult(long completedCycle, int result)Description copied from interface:OutputMark the result of the numbered cycle with an integer value. The meaning of the value provided is contextual to the way it is used. (Each process will have its own status tables, etc.)- Specified by:
onCycleResultin interfaceOutput- Parameters:
completedCycle- The cycle number being marked.result- the result ordinal- Returns:
- true on success, false if the marking should be retried differently
-
onCycleResultSegment
public void onCycleResultSegment(CycleResultsSegment segment)
- Specified by:
onCycleResultSegmentin interfaceOutput
-
close
public void close() throws java.lang.Exception
-
setFilter
public void setFilter(java.util.function.Predicate<ResultReadable> filter)
- Specified by:
setFilterin interfaceCanFilterResultValue
-
-