public class ExecutableChainImpl extends ExecutableProcessImpl implements IProcessChainExec
Implementation of an executable process chain.
This class can be associated with an
AggregateProcess
to provide
execution capability, but this will only work if all components
of the aggregate also have an executable implementation associated
to them.
Modifier and Type | Field and Description |
---|---|
protected boolean |
childrenThreadsOn |
protected List<DataConnection> |
internalConnections |
protected List<DataConnectionList> |
internalInputConnections |
protected List<DataConnectionList> |
internalOutputConnections |
protected List<DataConnectionList> |
internalParamConnections |
protected List<IProcessExec> |
processExecList |
protected Map<String,IProcessExec> |
processTable |
execError, initError, inputConnections, inputData, ioError, needSync, outputConnections, outputData, paramConnections, paramData, processThread, started, usingQueueBuffers, wrapperProcess
Constructor and Description |
---|
ExecutableChainImpl() |
Modifier and Type | Method and Description |
---|---|
protected void |
assignWrapperProcess(AbstractProcess wrapperProcess) |
void |
combineInputBlocks() |
void |
combineOutputBlocks() |
void |
connectInternalInput(String inputName,
String dataPath,
DataConnection connection) |
void |
connectInternalOutput(String outputName,
String dataPath,
DataConnection connection) |
void |
connectInternalParam(String paramName,
String dataPath,
DataConnection connection) |
protected void |
connectSignal(DataQueue dataQueue,
String linkString) |
void |
createNewOutputBlocks()
Creates new DataBlock for each output signal
|
void |
dispose()
Override to dispose of all resources allocated
for the process (stop threads, OS resources, etc...)
Default method does nothing.
|
void |
execute()
Execute is typically called several times on a process and should
contain all the logic to transform input/parameter values to
output values.
|
List<DataConnection> |
getInternalConnections() |
void |
init()
Initialize the process and its internal variables (fixed parameters).
|
boolean |
isChildrenThreadsOn() |
void |
reset()
Resets the process (especially asnchronous ones) before it can be run again.
|
void |
setChildrenThreadsOn(boolean childrenThreadsOn) |
void |
setOutputNeeded(int outputIndex,
boolean needed) |
void |
start()
Start process thread
|
void |
stop()
Stop process thread gracefully
|
canRun, checkAvailability, checkAvailability, connectInput, connectOutput, connectParameter, createNewInputBlocks, fetchData, finalize, getInputConnections, getInputList, getName, getOutputConnections, getOutputList, getParamConnections, getParameterList, getSignalIndex, isInputConnected, isOutputConnected, isParamConnected, isUsingQueueBuffers, needSync, run, setAvailability, setAvailability, setUsingQueueBuffers, toString, transferData, writeData
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
canRun, connectInput, connectOutput, connectParameter, createNewInputBlocks, getInputConnections, getInputList, getName, getOutputConnections, getOutputList, getParamConnections, getParameterList, isInputConnected, isOutputConnected, isParamConnected, isUsingQueueBuffers, needSync, run, setAvailability, setUsingQueueBuffers, transferData
protected transient Map<String,IProcessExec> processTable
protected transient List<IProcessExec> processExecList
protected transient boolean childrenThreadsOn
protected transient List<DataConnectionList> internalInputConnections
protected transient List<DataConnectionList> internalOutputConnections
protected transient List<DataConnectionList> internalParamConnections
protected transient List<DataConnection> internalConnections
protected void assignWrapperProcess(AbstractProcess wrapperProcess) throws SMLException
assignWrapperProcess
in class ExecutableProcessImpl
SMLException
public void init() throws SMLException
IProcessExec
init
in interface IProcessExec
init
in class ExecutableProcessImpl
SMLException
protected void connectSignal(DataQueue dataQueue, String linkString) throws SMLException
SMLException
public void reset() throws SMLException
IProcessExec
reset
in interface IProcessExec
reset
in class ExecutableProcessImpl
SMLException
public void dispose()
IProcessExec
dispose
in interface IProcessExec
dispose
in class ExecutableProcessImpl
public void execute() throws SMLException
IProcessExec
execute
in interface IProcessExec
execute
in class ExecutableProcessImpl
SMLException
public void createNewOutputBlocks()
IProcessExec
createNewOutputBlocks
in interface IProcessExec
createNewOutputBlocks
in class ExecutableProcessImpl
public void combineInputBlocks()
public void combineOutputBlocks()
public void connectInternalInput(String inputName, String dataPath, DataConnection connection) throws SMLException
connectInternalInput
in interface IProcessChainExec
SMLException
public void connectInternalOutput(String outputName, String dataPath, DataConnection connection) throws SMLException
connectInternalOutput
in interface IProcessChainExec
SMLException
public void connectInternalParam(String paramName, String dataPath, DataConnection connection) throws SMLException
connectInternalParam
in interface IProcessChainExec
SMLException
public void start() throws SMLException
IProcessExec
start
in interface IProcessExec
start
in class ExecutableProcessImpl
SMLException
public void stop()
IProcessExec
stop
in interface IProcessExec
stop
in class ExecutableProcessImpl
public boolean isChildrenThreadsOn()
isChildrenThreadsOn
in interface IProcessChainExec
public void setChildrenThreadsOn(boolean childrenThreadsOn)
setChildrenThreadsOn
in interface IProcessChainExec
public List<DataConnection> getInternalConnections()
getInternalConnections
in interface IProcessChainExec
public void setOutputNeeded(int outputIndex, boolean needed)
setOutputNeeded
in interface IProcessChainExec
Copyright © 2016 Sensia Software LLC. All rights reserved.