READ ME!
Reactive task entries in the controller represent the state of reactive tasks for an entity. This is to say that it also represents whether it is disabled for a specific entity, enabled for a specific entity, or any other state it may be in (such as currently active). This is important to note when modifying the code in this class as doing things such as clearing out the reactive task list from the PSR is going to result in incorrect behavior.
For instance, if a reactive task is active (reacting), and someone disables it, the entry still exists even after the active reaction completes since we need to remember that it was disabled for this entity. When a scenario loads, all reactive task state is remembered and restored and is then diff'd against the current available reactive tasks and makes intelligent decisions on what to do with the entry (remove it? keep it? add new ones?).
Similarly, during runtime, straight removal of entries must be treated differently in that they should not be removed. Using the function to mark them for deletion (in the entry class, see DtRwScriptReactiveTaskEntry) will guarantee that they will no longer be used by this controller (and the PSR) and will take care of all of the necessary cleanup.
Adding a new entry takes a bit more thought as it does require you to add it to the three maps that contain the current state data in the PSR. See the code for instances in which entries are created and added to the various maps.
|
| | DtScriptReactiveTaskController (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc, DtReaderWriterRegistry *parentRegistry) |
| |
| virtual | ~DtScriptReactiveTaskController () |
| |
| virtual const char * | type () const |
| |
| virtual bool | init () |
| |
| virtual void | preFirstTickInit () |
| |
| virtual void | tick () |
| |
virtual std::list
< DtScriptedTaskTask > | reactiveTaskStatus () const |
| |
| virtual bool | isReactiveTaskEnabled (const DtSimTaskMessageType &scriptId) const |
| |
| virtual void | notifySuspend (const DtSimTaskMessageType &scriptId, int taskId) |
| |
| virtual void | notifyResume (const DtSimTaskMessageType &scriptId, int taskId) |
| |
| virtual void | processReturnScriptInterface (const DtSimTaskMessageType &scriptId, int taskId, boost::shared_ptr< DtScriptInterface > iFace) |
| |
| virtual bool | enableReactiveTask (const DtSimTaskMessageType &scriptId, DtRwVariableBindings ¶ms, const DtString &systemName, bool resetIfEnabled=false) |
| |
| virtual bool | createPSR () |
| |
virtual std::vector
< DtSimTaskMessageType > | availableReactiveTasks () const |
| |
| virtual DtString | systemFor (const DtSimTaskMessageType &scriptId) const |
| |
|
| virtual void | scriptSetTickPeriod (int taskId, const DtString &scriptId, double period) |
| |
| virtual void | scriptSetTickWhilePaused (int taskId, const DtString &scriptId, bool enable) |
| |
| virtual void | scriptSetRespondToNewSensorContacts (int taskId, const DtString &scriptId, bool tick) |
| |
| virtual void | scriptTaskComplete (int taskId, bool success) |
| |
| virtual void | scriptSetComplete (const DtString &) |
| |
| virtual int | scriptSendSubtask (DtSimTask &task, int parentTaskId) |
| |
| virtual std::vector< int > | scriptPendingSubstaskIds (int taskId) |
| |
| virtual DtSubtaskStatusEntry * | scriptSubtaskStatus (int subtaskId, int parentTaskId) |
| |
| virtual void | cleanupInactiveSubtaskStatus (int parentTaskId) |
| |
| virtual void | scriptClearSubtask (int subtaskId, int parentTaskId) |
| |
| virtual int | scriptSendTask (DtSimTask &task, const DtUUID &entityName, int parentTaskId, bool actAsSubtask=true, bool useRadio=false) |
| |
| virtual void | setCheckpointModeUseCheckpointState (int taskId, const DtString &scriptId, bool) |
| |
| virtual bool | checkpointModeUseCheckpointState (int taskId, const DtString &scriptId) const |
| |
| virtual int | askUserQuestion (const DtString &scriptId, const DtTranslatableStream &title, const DtTranslatableStream &message, const std::vector< DtTranslatableStream > &options, int displayFlag) |
| |
| virtual int | statusOfUserQuestion (int questionId) |
| |
| virtual void | cancelUserQuestion (int questionId) |
| |
| virtual void | addReactiveTaskType (const DtSimTaskMessageType &, const DtString &system="") |
| |
| virtual void | notifyScriptTaskError (const DtString &scriptId, int taskId) |
| |
virtual
makVrf::DtPointTaskVisualizationPtr | pointTaskVisualization (int taskId, const DtString &visName) |
| |
virtual
makVrf::DtLineTaskVisualizationPtr | lineTaskVisualization (int taskId, const DtString &visName) |
| |
virtual
makVrf::DtAreaTaskVisualizationPtr | areaTaskVisualization (int taskId, const DtString &visName) |
| |
virtual
makVrf::DtTextTaskVisualizationPtr | textTaskVisualization (int taskId, const DtString &visName) |
| |
| virtual void | deleteTaskVisualization (int taskId, const DtString &visName) |
| |
| | DtControllerComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtControllerComponent () |
| |
| virtual bool | postAddComponentsInit () |
| |
| virtual DtSimRadio * | radio () |
| |
| virtual void | taskNotify (const DtSimTask &task) |
| |
| virtual void | clearTask () |
| |
| virtual void | enableTaskTypes () |
| |
| virtual void | disableTaskTypes () |
| |
| | DtSimComponent (const DtString &name, DtLocalObject *owner, DtSimulationServices *simServices, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0) |
| |
| virtual | ~DtSimComponent () |
| |
| virtual void | setParentSystem (DtComponentSystem *system) |
| |
| DtComponentSystem * | parentSystem () const |
| |
| virtual void | registerAttributeFunctions () |
| |
| virtual void | postTick () |
| |
| virtual void | timedTick () |
| |
| virtual void | setMinTickPeriod (double minTickPeriod) |
| |
| virtual double | minTickPeriod () const |
| |
| virtual void | setMinTickPeriodVariance (double minTickPeriodVariance) |
| |
| virtual double | minTickPeriodVariance () const |
| |
| virtual void | setNextTickTime (double nextTickTime) |
| |
| virtual double | nextTickTime () const |
| |
| virtual double | calculateNextTickTime () const |
| |
| virtual double | calculateFirstTickTime () const |
| |
| virtual void | setEntity (DtLocalObject *entity) |
| |
| virtual DtSimComponent * | nextComponent () |
| |
| virtual DtSimComponent * | prevComponent () |
| |
| virtual void | setListItem (DtListItem *item) |
| |
| virtual DtListItem * | listItem () |
| |
| virtual void | putData (std::string &fp, int indentLevel=0) |
| |
| virtual DtlObjPtr | getData (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings) |
| |
| virtual void | addInputPort (DtInputPort *port) |
| |
| virtual void | removeInputPort (DtInputPort *port) |
| |
| virtual DtInputPort * | lookupInputPort (const DtString &portName) |
| |
| virtual DtList | inputPortList () const |
| |
| virtual void | addOutputPort (DtOutputPort *port) |
| |
| virtual void | removeOutputPort (DtOutputPort *port) |
| |
| virtual DtOutputPort * | lookupOutputPort (const DtString &portName) |
| |
| virtual DtList | outputPortList () const |
| |
| virtual void | addInputPortGroup (DtInputPortGroup *group) |
| |
| virtual void | removeInputPortGroup (DtInputPortGroup *group) |
| |
| virtual DtInputPortGroup * | lookupInputPortGroup (const DtString &groupName) |
| |
| virtual DtList | inputPortGroupList () const |
| |
| virtual void | addOutputPortGroup (DtOutputPortGroup *group) |
| |
| virtual void | removeOutputPortGroup (DtOutputPortGroup *group) |
| |
| virtual DtOutputPortGroup * | lookupOutputPortGroup (const DtString &groupName) |
| |
| virtual DtList | outputPortGroupList () const |
| |
| virtual int | priority () const |
| |
| virtual void | setPriority (int priority) |
| |
| double | dT () const |
| |
| virtual void | setDT (double deltaT) |
| |
| virtual void | setComponentDescriptor (DtComponentDescriptor *componentDescriptor) |
| |
virtual const
DtComponentDescriptor * | componentDescriptor () const |
| |
| virtual bool | tickWhileDestroyed () const |
| |
| DtVrfProcessStateRepositoryManager * | psrManager () |
| |
| virtual const DtSymbolString & | componentFullName () const |
| |
| DtPhysicalWorld * | physicalWorld () |
| |
| const DtPhysicalWorld * | physicalWorld () const |
| |
| const DtAttachedTerrain * | terrainAttachedTo () const |
| |
| DtLocalObject * | entity () |
| |
| const DtLocalObject * | entity () const |
| |
| DtSimulationServices * | simulationServices () |
| |
| const DtSimulationServices * | simulationServices () const |
| |
| const Coordinate_System * | coordinateSystem () const |
| |
| virtual bool | taskVisualizationsActive () const |
| |
| virtual bool | taskVisualizationsEnabled () const |
| |
| makVrf::DtTaskVisualizationMap & | taskVisualizations () |
| |
| virtual void | enable () |
| |
| virtual void | disable () |
| |
| virtual bool | isEnabled () |
| |
| virtual void | setIsEnabled (bool yesNo) |
| |
| virtual DtOutputStream & | objectConsoleDebug (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleVerbose (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleInfo (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleWarn (const DtString &channel="") const |
| |
| virtual DtOutputStream & | objectConsoleError (const DtString &channel="") const |
| |
| virtual int | notifyLevel () const |
| |
| virtual DtSimResourceManager & | resourceManager () |
| |
virtual const
DtSimResourceManager & | resourceManager () const |
| |
VRF4API_METHOD const
DtSimulationServices * | simManager () const |
| |
| | DtReaderWriter () |
| |
| | DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) |
| |
| | DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false) |
| |
| | DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| | DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| | DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL) |
| |
| const DtReaderWriter & | operator= (const DtReaderWriter &orig) |
| |
| bool | operator== (const DtReaderWriter &) const |
| |
| bool | operator!= (const DtReaderWriter &rhs) |
| |
| virtual | ~DtReaderWriter () |
| |
| virtual void | putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| |
| virtual void | postPutSelf () |
| |
| virtual void | prePutSelf () |
| |
| virtual void | getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| virtual void | postGetSelf () |
| |
| virtual void | preGetSelf () |
| |
| virtual void | writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename()) |
| |
| virtual DtSymbolString | name () const |
| |
| virtual void | addAlias (const DtSymbolString &alias) |
| |
| virtual void | addAlias (const DtString &alias) |
| |
| virtual bool | hasAlias (const DtSymbolString &alias) |
| |
| virtual const aliasContainer & | aliases () const |
| |
| virtual void | setReadonly (bool flag) |
| |
| bool | isReadonly () const |
| |
| virtual void | reset () |
| |
| virtual int | alignment () const |
| |
| virtual bool | variableIsBound () const |
| |
| virtual void | unbindVariable () |
| |
| virtual void | setName (const DtString &) |
| |
| virtual const char * | readerWriterType () const |
| |
| virtual const char * | xmlType () const |
| |
| virtual DtString | prettyPrint () const |
| |
| std::string | debugText () const |
| |
| virtual void | bindVariables (DtVariableBindingsList variableBindings) |
| |
virtual std::list
< DtVariableNameType > | unboundVariables () const |
| |
| bool | invalid () const |
| |
| virtual bool | hasChild (const DtReaderWriter *p) const |
| |
| virtual bool | hasVariableReference () const |
| |
| virtual void | bindLocalVariables (const DtVariableBindingsList &variableBindings) |
| |
| virtual void | recordUpdateTime () const |
| |
| virtual bool | wasUpdatedSince (DtTime t) const |
| |
| virtual bool | changedSinceLastChecked () |
| |
| virtual bool | peekChangedSinceLastChecked () const |
| |
| virtual void | setValueSpecified (bool specified, bool recurse=false) |
| |
| virtual bool | valueSpecified () const |
| |
| virtual bool | isVariableReference () const |
| |
| virtual void | setIsVariableReference (bool value) |
| |
| virtual void | clearAllVariableReferenceFlags () |
| |
| virtual DtSymbolString | variableName () const |
| |
| virtual void | setVariableName (const DtSymbolString variableName) |
| |
| virtual const DtReaderWriter * | defaultRWValue () const |
| |
| virtual DtReaderWriter * | defaultRWValue () |
| |
| virtual void | setDefaultRWValue (DtReaderWriter *) |
| |
| virtual bool | checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference()) |
| |
| const DtReaderWriterRegistry & | registry () const |
| |
| DtReaderWriterRegistry & | registry () |
| |
| virtual DtPropertyInterface * | property () |
| |
| virtual const DtPropertyInterface * | property () const |
| |
| virtual DtString | toXml () const |
| |
| virtual DtRwVariableBindings * | generateVariableBindings () const |
| |
| virtual bool | toXml (const DtFilename &) const |
| |
| virtual bool | fromXml (const DtString &) |
| |
| virtual bool | fromXmlFile (const DtFilename &) |
| |
| virtual void | putSelf (DtEnvironmentSP, DtEnvValueSP parent) const |
| |
| virtual void | putData (DtEnvironmentSP, DtEnvValueSP value) const |
| |
| virtual void | putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const |
| |
| virtual void | getSelf (const DtEnvironmentSP, const DtEnvValueSP root, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| |
| virtual void | getData (const DtEnvironmentSP, const DtEnvValueSP, const SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &bindings=DtVariableBindingsList()) |
| |
| virtual void | unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings) |
| |
| virtual void | getVariableReference (DtEnvironmentSP, DtEnvValueSP value) |
| |
| virtual | ~DtScriptTaskControllerInterface () |
| |
|
| | DtScriptReactiveTaskController () |
| |
| | DtScriptReactiveTaskController (const DtScriptReactiveTaskController &other) |
| |
| DtScriptReactiveTaskController & | operator= (const DtScriptReactiveTaskController &other) |
| |
| virtual bool | shouldInvokeCheck (DtRwScriptReactiveTaskEntry *entry) |
| |
virtual
DtRwScriptReactiveTaskEntry * | createDefaultEntry (const DtString &scriptId, const DtString &system="") |
| |
| virtual bool | createAndInitScriptInterface (DtRwScriptReactiveTaskEntry *entry, DtRwVariableBindings *params, bool loadState=false) |
| |
| virtual void | activateReactiveTask (DtRwScriptReactiveTaskEntry *entry) |
| |
| virtual void | disableReactiveTask (DtRwScriptReactiveTaskEntry *entry, bool cancelActive) |
| |
| virtual void | processSetReactiveTaskCallback (DtSetDataRequest *setMsg) |
| |
| virtual void | processSetCancel (DtSetReactiveTaskCancel *setMsg) |
| |
| virtual void | processSetDisabled (DtSetReactiveTaskDisabled *setMsg) |
| |
| virtual void | processSetEnabled (DtSetReactiveTaskEnabled *setMsg) |
| |
| virtual void | processSetPriority (DtSetReactiveTaskPriority *setMsg) |
| |
| virtual void | processSetTable (DtSetReactiveTaskTable *setMsg) |
| |
| virtual void | setupReactiveTasks () |
| |
| virtual void | processScriptUpdatedCallback (const DtScriptedTaskManagerCallbackInfo &info) |
| |
| virtual bool | doesScriptIdApply (const DtSimTaskMessageType &scriptId) const |
| |
| virtual bool | isForMyEntityType (const DtScriptedTaskMetaData &metaData) const |
| |
| virtual void | processUserQuestionOperation (DtSimMessage *) |
| |
| virtual void | sendOffOutstandingQuestionFor (const DtSimTaskMessageType &scriptId) |
| |
| virtual void | addReactiveTaskEntry (const DtSimTaskMessageType &scriptId, DtRwScriptReactiveTaskEntry *entry, bool deleteOnUpdate=true) |
| |
| virtual void | queueReactiveTaskCallback (DtSetDataRequest *setMsg) |
| |
| | DtControllerComponent () |
| |
| | DtControllerComponent (const DtControllerComponent &orig) |
| |
| const DtControllerComponent & | operator= (const DtControllerComponent &orig) |
| |
| virtual void | onRestore () |
| |
| virtual void | initializeTargetingControlTableFromDescriptor (const DtReaderWriter *) |
| |
| virtual void | setRadio (DtSimRadio *radio) |
| |
| virtual void | sendCapableSetsAndTasks () |
| |
| virtual double | computeCurrentTime () |
| |
| bool | testInvariant () const |
| |
| virtual bool | createPortGroups () |
| |
| virtual bool | createPorts () |
| |
| DtVrfProcessStateRepository * | createComponentPsr (const DtString &defaultPsrType, const DtString &defaultPsrName, bool useDescriptorParams=true) |
| |
| virtual void | updateTaskVisualizations () |
| |
| virtual void | destroyTaskVisualizations () |
| |
| virtual void | destroyTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtPointTaskVisualizationPtr | pointTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtLineTaskVisualizationPtr | lineTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtAreaTaskVisualizationPtr | areaTaskVisualization (const DtString &name) |
| |
virtual
makVrf::DtTextTaskVisualizationPtr | textTaskVisualization (const DtString &name) |
| |
| double | calculateNextTaskVisTickTime () const |
| |
| DtVrfObjectStateRepository * | localStateRepository () |
| |
| const DtVrfObjectStateRepository * | localStateRepository () const |
| |
| void | addSimObjectPredicateCallback (DtSimObjectReference, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0) |
| |
| void | removeSimObjectPredicateCallback (const DtSimObject *, DtVrfObjectPredicateCallbackFunction function, const DtVrfObjectPredicate &predicate, DtTime evaluationPeriod=0, void *userData=0) |
| |
| void | invokeSimObjectPredicateCallbacks () |
| |
| virtual void | clearPredicateCallbacks () |
| |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
| |
| | DtScriptTaskControllerInterface () |
| |
| | DtScriptTaskControllerInterface (const DtScriptTaskControllerInterface &other) |
| |
| DtScriptTaskControllerInterface & | operator= (const DtScriptTaskControllerInterface &other) |
| |