public class BooleanMultiDelay extends CompilableBooleanStoredSignalSource implements Register
A single instance of this class is operationally equivalent to a chain of single-step delay operators. However, the computational costs of the former per clock tick are constant, whereas for the latter they grow linearly with the length of the chain.
Process.Proxy
out
STREAM_CHARACTERISTICS, STREAM_SIZE
Constructor and Description |
---|
BooleanMultiDelay(boolean... initial) |
BooleanMultiDelay(boolean[] initial,
BooleanSignalSource in) |
BooleanMultiDelay(boolean[] initial,
Function<? super BooleanMultiDelay,? extends BooleanSignalSource> in) |
Modifier and Type | Method and Description |
---|---|
Consumer<CompilationContext> |
compileControlFlow()
Compiles the state transition of this entity.
|
Consumer<CompilationContext> |
compileInitialization()
Compiles the initialization of this entity.
|
Process |
getLoadPhase() |
protected VariableContext.Variable |
getNextVariable(CompilationContext context) |
protected VariableContext.Variable |
getPhaseVariable(CompilationContext context) |
Process |
getStorePhase() |
void |
init()
Initializes the state of this process.
|
void |
setInput(BooleanSignalSource in) |
void |
step(RealtimeContext context)
Signals a time event, executing a transition step for this process to the
next observable state.
|
compileDataFlow, compileSetStoredValueVariable, getStoredValueVariable, publishStoredValueVariable
getAsBoolean
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
andMeanwhile, andMeanwhile
adHoc, after, compile, cycle, during, initially, subsequently
and, becoming, ceasing, choose, choose, choose, choose, choose, choose, choose, choose, choose, choose, choose, clock, compileMainSignalSource, constant, delayed, delayed, delayedFeedback, delayedFeedback, getConstantAsBoolean, getValueClass, guard, hasConstantAsBoolean, invariant, map, not, or, power, probe, relateWith, sampleAndHold, stored, xor, zipWith
compileDataFlowTo, hasDataFlowIO
afterEvery, andThen, compileAsMainProcess, every, getProcess, hasControlFlowIO, hasInitializationIO, probe, sequence, sequence
@Undocumented public BooleanMultiDelay(boolean... initial)
@Undocumented public BooleanMultiDelay(boolean[] initial, BooleanSignalSource in)
@Undocumented public BooleanMultiDelay(boolean[] initial, Function<? super BooleanMultiDelay,? extends BooleanSignalSource> in)
@Undocumented public void setInput(BooleanSignalSource in)
@Undocumented public Process getLoadPhase()
getLoadPhase
in interface Register
@Undocumented public Process getStorePhase()
getStorePhase
in interface Register
@Undocumented public void init()
Process
Process.step(RealtimeContext)
transitions to
the first specified observable state.
The default implementation does nothing.
@Undocumented public void step(RealtimeContext context)
Process
The state of the process after successful completion of this method
should be the n-th observable state, if Process.step(eu.bandm.sig.adlib2.RealtimeContext)
has been
invoked n times since the last initialization via Process.init()
.
The behavior of this method is unspecified if Process.init()
has not been
invoked before.
If this method completes abruptly by throwing an error or unchecked exception, the process state should be considered invalid.
@Undocumented protected VariableContext.Variable getNextVariable(CompilationContext context)
@Undocumented protected VariableContext.Variable getPhaseVariable(CompilationContext context)
@Undocumented public Consumer<CompilationContext> compileInitialization()
CompilableControlFlow
compileInitialization
in interface CompilableControlFlow
compileInitialization
in interface Process
compileInitialization
in class CompilableBooleanStoredSignalSource
Process.hasInitializationIO(eu.bandm.sig.adlib2.compile.CompilationContext)
@Undocumented public Consumer<CompilationContext> compileControlFlow()
CompilableControlFlow
compileControlFlow
in interface CompilableControlFlow
compileControlFlow
in interface Process
compileControlFlow
in class CompilableBooleanStoredSignalSource
Process.hasControlFlowIO(eu.bandm.sig.adlib2.compile.CompilationContext)