public class ConcurrentStrandExecutor extends java.lang.Object implements StrandExecutor
StrandExecutor
. Internally all the operations run on a separate
thread avoiding to block the instruct(StrandCommand)
method (or any other for that matter).
This class is thread safe
Constructor and Description |
---|
ConcurrentStrandExecutor(io.molr.commons.domain.Strand strand,
io.molr.commons.domain.Block actualBlock,
TreeStructure structure,
StrandFactory strandFactory,
StrandExecutorFactory strandExecutorFactory,
LeafExecutor leafExecutor) |
Modifier and Type | Method and Description |
---|---|
io.molr.commons.domain.Block |
getActualBlock() |
io.molr.commons.domain.RunState |
getActualState() |
java.util.Set<io.molr.commons.domain.StrandCommand> |
getAllowedCommands() |
reactor.core.publisher.Flux<io.molr.commons.domain.Block> |
getBlockStream() |
java.util.Set<StrandExecutor> |
getChildrenStrandExecutors() |
reactor.core.publisher.Flux<java.lang.Exception> |
getErrorsStream() |
reactor.core.publisher.Flux<io.molr.commons.domain.StrandCommand> |
getLastCommandStream()
Deprecated.
|
reactor.core.publisher.Flux<io.molr.commons.domain.RunState> |
getStateStream() |
io.molr.commons.domain.Strand |
getStrand() |
void |
instruct(io.molr.commons.domain.StrandCommand command) |
void |
moveTo(io.molr.commons.domain.Block block)
Deprecated.
|
public ConcurrentStrandExecutor(io.molr.commons.domain.Strand strand, io.molr.commons.domain.Block actualBlock, TreeStructure structure, StrandFactory strandFactory, StrandExecutorFactory strandExecutorFactory, LeafExecutor leafExecutor)
public void instruct(io.molr.commons.domain.StrandCommand command)
instruct
in interface StrandExecutor
public reactor.core.publisher.Flux<io.molr.commons.domain.RunState> getStateStream()
getStateStream
in interface StrandExecutor
public reactor.core.publisher.Flux<io.molr.commons.domain.Block> getBlockStream()
getBlockStream
in interface StrandExecutor
public reactor.core.publisher.Flux<java.lang.Exception> getErrorsStream()
getErrorsStream
in interface StrandExecutor
@Deprecated public reactor.core.publisher.Flux<io.molr.commons.domain.StrandCommand> getLastCommandStream()
public io.molr.commons.domain.Strand getStrand()
getStrand
in interface StrandExecutor
public io.molr.commons.domain.RunState getActualState()
getActualState
in interface StrandExecutor
public io.molr.commons.domain.Block getActualBlock()
getActualBlock
in interface StrandExecutor
public java.util.Set<io.molr.commons.domain.StrandCommand> getAllowedCommands()
getAllowedCommands
in interface StrandExecutor
@Deprecated public void moveTo(io.molr.commons.domain.Block block)
public java.util.Set<StrandExecutor> getChildrenStrandExecutors()