VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
DtPlan Class Reference

class DtPlan:

Instances of DtPlan represent the Plan associated with a single name.

See Also
Plans
Examples
Inheritance diagram for DtPlan:
Inheritance graph
[legend]

Public Types

enum  QuickLaunchFlags { None = 0, IsQuickLaunch = 0x00000001, ShowOnQuickLaunchToolbar = 0x00000002, Launched = 0x00000004 }
 
- Public Types inherited from DtReaderWriter
typedef std::vector
< DtSymbolString
aliasContainer
 
typedef std::vector
< DtSymbolString >::iterator 
aliasIter
 
typedef std::vector
< DtSymbolString >
::const_iterator 
aliasConstIter
 
typedef std::vector< DtFilename > SearchPaths
 
typedef std::pair
< DtSymbolString, DtString
DtVariableNameType
 
typedef DtReaderWriterFactory *(* DtReaderWriterFactoryCreatorFcn )()
 

Public Member Functions

 DtPlan ()
 
 DtPlan (const DtUUID &planName, DtPlanExecutor *planExecutor, const DtString &name="Plan", DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtPlan (const DtString &name, const DtUUID &planName, const DtPlan &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 
 DtPlan (const DtPlan &orig)
 
virtual ~DtPlan ()
 
virtual void init ()
 
virtual void addVariables ()
 
virtual DtPlanclone (const DtString &name, const DtUUID &planName, DtReaderWriterRegistry *parentRegistry=NULL) const
 
DtPlanoperator= (const DtPlan &orig)
 
virtual bool operator== (const DtPlan &orig) const
 
virtual const DtUUIDplanName () const
 
virtual void setPlanName (const DtUUID &name)
 
virtual bool planNameSpecified () const
 
virtual void setIsQuickLaunch (bool)
 
virtual bool isQuickLaunch () const
 
virtual void setShowOnQuickLaunchToolbar (bool)
 
virtual bool showOnQuickLaunchToolbar () const
 
virtual void setIsLaunched (bool)
 
virtual bool isLaunched () const
 
virtual void setQuickLaunchIcon (const DtString &)
 
virtual const DtStringquickLaunchIcon () const
 
virtual void setOrdinal (int)
 
virtual int ordinal () const
 
virtual void setPlanSummary (const DtString &)
 
virtual const DtStringplanSummary () const
 
virtual void setPlanExecutor (DtPlanExecutor *planExecutor)
 
virtual DtPlanExecutorplanExecutor () const
 
virtual void enableExecutionState ()
 
virtual void disableExecutionState ()
 
virtual bool executionState () const
 
virtual void awaitingTask ()
 
virtual bool isAwatingTask () const
 
virtual void addTrigger (const DtTriggerStmt &)
 
virtual DtTriggerStmttriggerStatement (const DtUUID &) const
 
virtual void removeTrigger (const DtUUID &)
 
virtual void renameTrigger (const DtUUID &, const DtString &newName)
 
virtual void updateTrigger (const DtTriggerStmt *)
 
virtual void setTriggers (const DtRwTriggersList &)
 
const DtRwTriggersListtriggers () const
 
virtual void pushExecutionStack ()
 
virtual void suspendExecutionStack ()
 
virtual void popExecutionStack (bool forceStep=false)
 
virtual void executeTrigger (DtTriggerBlock *whenBlock)
 
virtual void executeBlock (DtSimBlock *block)
 
virtual bool taskRequestPending () const
 
virtual void setTaskRequestPending (bool newValue=true)
 
const DtRwVariableBindingsvariables () const
 
virtual DtReaderWritervariable (const DtString &)
 
virtual void clearVariables ()
 
virtual void addVariable (DtRwPlanVariable *)
 
virtual void setVariables (const DtRwVariableBindings &)
 
virtual bool executeTask (const DtSimTask &taskToSend) const
 
virtual bool executeSetDataRequest (const DtSetDataRequest &setToSend) const
 
virtual bool executeSimCommand (const DtSimCommand &command, DtSimCommandContextPtr &context) const
 
virtual bool isSimCommandComplete (const DtSimCommand &command, const DtSimCommandContextPtr &context) const
 
virtual bool evaluateConditional (const DtSimCondExpr *condExpr) const
 
virtual DtStmtIndex firstStmt () const
 
virtual DtPlanBlockmainBlock () const
 
virtual void empty ()
 
virtual bool isEmpty () const
 
virtual DtList * triggerList ()
 
virtual const DtList * triggerList () const
 
virtual void addTriggerToExecute (DtSimTrigger *trigger)
 
virtual void removeTriggerFromPendingExecution (DtSimTrigger *trigger)
 
virtual DtList * executionStack ()
 
virtual const DtList * executionStack () const
 
virtual bool validatePlan ()
 
virtual const DtStmtIndexcurrentStmt () const
 
virtual void setCurrentStmt (const DtStmtIndex &nextStatement)
 
virtual void setCurrentStatementExecutionId (int id)
 
virtual bool isComplete () const
 
virtual void setIsComplete (bool completeFlag=true)
 
virtual void setLastStatementExecuted (bool)
 
virtual bool lastStatementExecuted () const
 
virtual bool isAbandoned () const
 
virtual void setIsAbandoned (bool v)
 
virtual bool isExecuting () const
 
virtual DtPlanStatus currentStatus () const
 
virtual void reset ()
 
virtual void abandonPlan (bool sendWaitTask)
 
virtual void restartPlan (bool sendWaitTask=true)
 
virtual bool translateIndex (DtStmtIndex &stmtIndex) const
 
virtual void translateIndices (DtList &stmtIndexList) const
 
virtual void tick ()
 
virtual void mergeEditedPlanWith (const DtPlan &oldPlan)
 
virtual
DtRecursiveSimBlockIterator
spawnRecursiveIterator () const
 
virtual void putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtReaderWriter::appPath())
 
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=DtReaderWriter::SearchPaths(), const DtVariableBindingsList &variableBindings=DtReaderWriter::nullVariableReference())
 
virtual void addStatementChangedCallback (DtCurrentStatementChangedCallbackFcn fcn, void *usrData)
 
virtual void removeStatementChangedCallback (DtCurrentStatementChangedCallbackFcn fcn, void *usrData)
 
virtual void addTickCallback (DtStmtTickCallbackFcn fcn, void *usrData)
 
virtual void removeTickCallback (DtStmtTickCallbackFcn fcn, void *usrData)
 
virtual void reissueStatementIds (DtSimStatement *stmt)
 
virtual void pushExecutingTrigger (int)
 
virtual void popExecutingTrigger ()
 
virtual int executingTriggerStatementId () const
 
virtual std::vector< intexecutingTriggerStatementIds () const
 
virtual DtUUID executingTriggerName () const
 
virtual std::vector< DtUUIDexecutingTriggerNames () const
 
virtual std::vector< DtUUIDregisteredTriggerNames () const
 
virtual bool triggerIsRunning (const DtUUID &) const
 
virtual bool triggerIsRegistered (const DtUUID &) const
 
virtual void removeScheduledTriggers (const DtUUID &)
 
virtual void mapRegisteredTriggersToTriggerStatements ()
 
virtual DtSimStatementlookupStatementByCursor (int cursor)
 
virtual DtSimStatementlookupStatementByStatementId (int) const
 
virtual void setContinuePlan (bool)
 
virtual std::vector
< DtReaderWriter * > 
substituteVariablesIn (DtReaderWriter *) const
 
virtual std::vector
< DtReaderWriter * > 
substitutedValues (const DtReaderWriter *) const
 
virtual bool subsituteUUIDIfAvailable (const DtReaderWriter *, DtUUID &uuid) const
 
virtual void removeTopExecutionStack ()
 
virtual void addSkipTaskCallback (DtSkipTaskCallbackFcn fcn, void *usrData)
 
virtual void removeSkipTaskCallback (DtSkipTaskCallbackFcn fcn, void *usrData)
 
virtual void invokeSkipTaskCallbacks ()
 
- Public Member Functions inherited from DtReaderWriter
 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 DtReaderWriteroperator= (const DtReaderWriter &orig)
 
bool operator== (const DtReaderWriter &) const
 
bool operator!= (const DtReaderWriter &rhs)
 
virtual ~DtReaderWriter ()
 
virtual void postPutSelf ()
 
virtual void prePutSelf ()
 
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 aliasContaineraliases () const
 
virtual void setReadonly (bool flag)
 
bool isReadonly () const
 
virtual int alignment () const
 
virtual bool variableIsBound () const
 
virtual void unbindVariable ()
 
virtual void setName (const DtString &)
 
virtual const charreaderWriterType () const
 
virtual const charxmlType () 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 putData (std::string &fp, int indentLevel=0)
 
virtual DtlObjPtr getData (DtlObjPtr args, const SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
 
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 DtReaderWriterdefaultRWValue () const
 
virtual DtReaderWriterdefaultRWValue ()
 
virtual void setDefaultRWValue (DtReaderWriter *)
 
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 
const DtReaderWriterRegistryregistry () const
 
DtReaderWriterRegistryregistry ()
 
virtual DtPropertyInterfaceproperty ()
 
virtual const DtPropertyInterfaceproperty () const
 
virtual DtString toXml () const
 
virtual DtRwVariableBindingsgenerateVariableBindings () 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)
 

Protected Member Functions

virtual void processAwaitingTask ()
 
virtual void createMainBlock ()
 
virtual void copyMainBlock (const DtPlan &otherPlan)
 
virtual void copyAndTranslateExecutionStack (const DtPlan &otherPlan)
 
virtual void copyAndTranslateTriggers (const DtPlan &otherPlan)
 
virtual void curStmtChanged ()
 
virtual void continuePlan ()
 
virtual void stepStatement (bool forceStep=false)
 
virtual void executeStatement ()
 
virtual void clearTriggerList ()
 
virtual void clearExecutionStack ()
 
virtual void emtpyExecutionStack ()
 
virtual int statementIdToCursor (DtStmtIdType statementId)
 
virtual DtStmtIdType cursorToStatementId (int cursor)
 
virtual DtSimStatementlookupStatementByStatementId (DtSimBlock *, int, std::set< DtUUID > &triggersVisited) const
 
virtual void createTriggersFromWhenBlocks ()
 
virtual void createTriggersFromWhenBlocks (DtSimBlock *)
 
virtual void createTriggersFromWhenBlocks (DtSimBlock *, DtSimStatement *)
 
virtual void removeTriggerRegistrationFrom (DtSimBlock *, const DtUUID &)
 
virtual void removeTriggerRegistrationFrom (DtSimBlock *, DtSimStatement *, const DtUUID &)
 
virtual void mapExecutionStackToExecutingTriggers ()
 
virtual void mapExecutionStackToRwExecutionStack (DtRwPlanExecutionStack &rwExecutionStack)
 
virtual void mapPendingTriggersToPendingTriggerDataList ()
 
virtual void mapOldExecutionCursorStackToExecutionStack (const DtRwIntegerList &executionCursorStack)
 
virtual void mapRwExecutionStackToExecutionStack (const DtRwPlanExecutionStack &rwExecutionStack)
 
virtual void mapPendingTriggerDataToPendingTriggers ()
 
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 

Protected Attributes

DtRwBoolean myTaskRequestPending
 
DtPlanBlockmyMainBlock
 
DtList myExecutionStack
 
DtRwBoolean myIsComplete
 
DtRwBoolean myLastStatementExecuted
 
DtRwBoolean myAbandoned
 
DtList myPendingTriggers
 
DtCallbackList< const DtPlan & > myStatementChangedCbs
 
DtCallbackList< DtPlan & > myStatementTickCbs
 
DtNoArgumentCallbackList myStatementSkipTaskCbs
 
DtRwTriggerDataList myPendingTriggerDataList
 
DtRwTriggersList myTriggers
 
bool myExecutionIsEnabled
 
bool myWantsExecutionStateEnabled
 
bool myAwaitingTaskFlag
 
DtRwUUID myPlanName
 
bool myContinuePlan
 
DtPlanExecutormyPlanExecutor
 
DtPlanStatus myLastSentStatus
 
DtRwInt myQuickLaunchFlags
 
DtRwString myQuickLaunchIcon
 
DtRwInt myOrdinal
 
DtRwString myPlanSummary
 
DtRwIntegerList myExecutingTriggers
 
DtRwVariableBindings myPlanVariables
 
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
 
DtReaderWriterRegistry myRegistry
 
DtReaderWriterRegistrymyParentRegistry
 
bool myValueSpecified
 
bool myReadOnlyFlag
 
bool myIsVariableReference
 
DtSymbolString myVariableName
 
bool myVariableIsBound
 
DtReaderWritermyDefaultValue
 
aliasContainer myAliases
 
bool myInvalid
 
bool myChangedFlag
 

Additional Inherited Members

- Static Public Member Functions inherited from DtReaderWriter
static void putIndent (std::string &fp, int indentLevel)
 
static const
DtVariableBindingsList
nullVariableReference ()
 
static void setPostGetSelfCallback (DtGetSelfCallbackFcn fcn, void *usrData)
 
static void setPrePutSelfCallback (DtPutSelfCallbackFcn fcn, void *usrData)
 
static void setPutIndent (bool)
 
static bool putIndent ()
 
static const chartheXmlType ()
 
static const DtFilename & appPath ()
 
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 
static void createReaderWriterFactory ()
 
static void cleanupFactory ()
 
static DtReaderWriterFactoryfactory ()
 
static void setOutputStream (DtOutputStream *stream)
 
static DtOutputStream & outputStream ()
 
static DtReaderWritercreateFromXmlFile (const DtFilename &, bool createAsProperty=false)
 
static DtReaderWritercreateFromXml (const DtString &, bool createAsProperty=false)
 
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP, bool createAsProperty=false)
 
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 
- Static Protected Attributes inherited from DtReaderWriter
static DtString theUnspecifiedValue
 
static DtGetSelfCallbackInfo thePostGetSelfCallback
 
static DtPutSelfCallbackInfo thePrePutSelfCallback
 
static const DtVariableBindingsList theEmptyVariableBindingsList
 
static bool theCreatorFcnSet
 
static DtReaderWriterFactorytheFactory
 
static
DtReaderWriterFactoryCreatorFcn 
theFactoryCreatorFcn
 
static bool thePutIndent
 
static DtOutputStream * theOutputStream
 

Member Enumeration Documentation

Enumerator
None 
IsQuickLaunch 
ShowOnQuickLaunchToolbar 
Launched 

Constructor & Destructor Documentation

DtPlan::DtPlan ( )

constructor for use from within a front-end application, or when creating a plan to be assigned through DtCgf's assignPlan() function.

Note: the init function must be called after using this constructor.

DtPlan::DtPlan ( const DtUUID planName,
DtPlanExecutor planExecutor,
const DtString name = "Plan",
DtReaderWriterRegistry parentRegistry = NULL 
)

constructor for use from within a back-end application

Note: the init function must be called after using this constructor.

DtPlan::DtPlan ( const DtString name,
const DtUUID planName,
const DtPlan orig,
DtReaderWriterRegistry parentRegistry = NULL 
)

copy constructor

This is a copy constructor that can register as a Readable-Writable member.

DtPlan::DtPlan ( const DtPlan orig)
virtual DtPlan::~DtPlan ( )
virtual

destructor

Member Function Documentation

virtual void DtPlan::init ( )
virtual

The init function must be called after any non-copy constructor!

virtual void DtPlan::addVariables ( )
virtual

Adds default variables to plan.

virtual DtPlan* DtPlan::clone ( const DtString name,
const DtUUID planName,
DtReaderWriterRegistry parentRegistry = NULL 
) const
virtual

Returns a newly created copy of ourself. name is the DtReaderWriter name of the plan.

DtPlan& DtPlan::operator= ( const DtPlan orig)

Note: this will NOT copy the DtSimPlanManager pointer, and will only copy the planName if *this is not currently registered with a DtSimPlanManager (because either the DtSimPlanManager pointer is NULL or the current planName is empty).

virtual bool DtPlan::operator== ( const DtPlan orig) const
virtual

Equality operator.

virtual const DtUUID& DtPlan::planName ( ) const
virtual
virtual void DtPlan::setPlanName ( const DtUUID name)
virtual
virtual bool DtPlan::planNameSpecified ( ) const
virtual
virtual void DtPlan::setIsQuickLaunch ( bool  )
virtual

If true will not enable execution state unless isLaunched is also true. If set to true, and was false, will reset plan and disable execution state. Will also set isLaunched to false on switch. If true and set to false will reset state and enable execution state (if state should be enabled)

virtual bool DtPlan::isQuickLaunch ( ) const
virtual
virtual void DtPlan::setShowOnQuickLaunchToolbar ( bool  )
virtual

Gui element only – whether or not to show on quick launch toolbar.

virtual bool DtPlan::showOnQuickLaunchToolbar ( ) const
virtual
virtual void DtPlan::setIsLaunched ( bool  )
virtual

Only used if quick launch. If set to true, and state should be enabled, will enable state. If set to false will disable state.

virtual bool DtPlan::isLaunched ( ) const
virtual
virtual void DtPlan::setQuickLaunchIcon ( const DtString )
virtual

Icon to use for display in gui.

virtual const DtString& DtPlan::quickLaunchIcon ( ) const
virtual
virtual void DtPlan::setOrdinal ( int  )
virtual

Order to display items on the quick launch toolbar.

virtual int DtPlan::ordinal ( ) const
virtual
virtual void DtPlan::setPlanSummary ( const DtString )
virtual

Plan summary.

virtual const DtString& DtPlan::planSummary ( ) const
virtual
virtual void DtPlan::setPlanExecutor ( DtPlanExecutor planExecutor)
virtual

Get a pointer to the sim manager.

virtual DtPlanExecutor* DtPlan::planExecutor ( ) const
virtual
virtual void DtPlan::enableExecutionState ( )
virtual

Enable/disable plan execution state. Plan will not start or advance through statements unless execution state is enabled.

virtual void DtPlan::disableExecutionState ( )
virtual
virtual bool DtPlan::executionState ( ) const
virtual
virtual void DtPlan::awaitingTask ( )
virtual

Sets our awaiting task flag (it will be handled in processAwaitingTask(), called from tick if/when plan execution state is enabled.

virtual bool DtPlan::isAwatingTask ( ) const
virtual
Returns
the current value of myAwaitingTaskFlag.
virtual void DtPlan::addTrigger ( const DtTriggerStmt )
virtual

Adds a new condition into the condition list. Will clone.

virtual DtTriggerStmt* DtPlan::triggerStatement ( const DtUUID ) const
virtual

Returns the trigger with the given name.

virtual void DtPlan::removeTrigger ( const DtUUID )
virtual

Removes the triger with the given name. Will also go through all triggers that are not of that name and remove any unregister/register statements of a trigger with that name.

virtual void DtPlan::renameTrigger ( const DtUUID ,
const DtString newName 
)
virtual

Renames the trigger to the new name.

virtual void DtPlan::updateTrigger ( const DtTriggerStmt )
virtual

Sets the trigger to have the contents of the supplied trigger. If trigger does not exist by UUID will not add.

virtual void DtPlan::setTriggers ( const DtRwTriggersList )
virtual

Sets the triggers to tbe the list of triggers.

const DtRwTriggersList& DtPlan::triggers ( ) const
inline

Returns plans triggers.

virtual void DtPlan::pushExecutionStack ( )
virtual

When a retasking trigger fires, it first calls pushExecutionStack on the DtPlan. This has the effect of duplicating the currentStmt index at the top of the stack. It does not, of itself, cause any new statements to get executed or sent to the entity. It is assumed that this call will be followed by a call to executeTrigger(), or at least setCurrentStmt().

virtual void DtPlan::suspendExecutionStack ( )
virtual

Called by a trigger that wishes to suspend the current task such that when the trigger is complete the task that is suspended will resume.

virtual void DtPlan::popExecutionStack ( bool  forceStep = false)
virtual

When a retasking trigger completes, it calls popExecutionStack on the DtPlan. This has the effect of popping the execution stack back to the statement that was interrupted by the trigger. If the forceStep parameter is true, this will step to the statement following the one on the stack. If false, then the plan will check to see if the new top statement is still executing. If so, it will continue with that statement, otherwise it will step to the next statement.

virtual void DtPlan::executeTrigger ( DtTriggerBlock whenBlock)
virtual

When a DtSimTrigger gets executed, it calls the executeTrigger function which begins execution of the whenBlock.

virtual void DtPlan::executeBlock ( DtSimBlock block)
virtual

Begin execution of a block of tasks.

virtual bool DtPlan::taskRequestPending ( ) const
virtual

Get the TaskRequestPending flag.

virtual void DtPlan::setTaskRequestPending ( bool  newValue = true)
virtual

Set or clear the TaskRequestPending flag.

const DtRwVariableBindings& DtPlan::variables ( ) const
inline

Returns plan variables.

virtual DtReaderWriter* DtPlan::variable ( const DtString )
virtual
virtual void DtPlan::clearVariables ( )
virtual

Clears all plan variables. If referenced by items in the plan, those items will now have dangling references.

virtual void DtPlan::addVariable ( DtRwPlanVariable )
virtual

Adss variable and takes ownership of memory.

virtual void DtPlan::setVariables ( const DtRwVariableBindings )
virtual

Copies variables list.

virtual bool DtPlan::executeTask ( const DtSimTask taskToSend) const
virtual

Uses the plan executor to execute the specified task in the context of this plan.

Returns
True if successful.
virtual bool DtPlan::executeSetDataRequest ( const DtSetDataRequest setToSend) const
virtual

Uses the plan executor to execute the specified set data request in the context of this plan.

Returns
True if successful.
virtual bool DtPlan::executeSimCommand ( const DtSimCommand command,
DtSimCommandContextPtr context 
) const
virtual

Uses the plan executor to execute the specified simulation command in the context of this plan. if the context comes back as non null then the command is not complete. Call isSimCommandComplete with that comtext to see if the command is complete.

Returns
True if successful.
virtual bool DtPlan::isSimCommandComplete ( const DtSimCommand command,
const DtSimCommandContextPtr context 
) const
virtual

Create an executor and call it with the command context pointer to see if the command is complete. Will return true if it is.

virtual bool DtPlan::evaluateConditional ( const DtSimCondExpr condExpr) const
virtual

Uses myPlanExecutor to evaluate the conditional expression. False is returned if there is not plan executor.

virtual DtStmtIndex DtPlan::firstStmt ( ) const
virtual

Get the index of the first statement in the plan.

virtual DtPlanBlock* DtPlan::mainBlock ( ) const
virtual

Get a pointer to the Plan's main Block.

virtual void DtPlan::empty ( )
virtual

Empties the plan of all statements and creates a new main block.

virtual bool DtPlan::isEmpty ( ) const
virtual

True if the Plan is considered "Empty" (containing no statements).

virtual DtList* DtPlan::triggerList ( )
virtual

Get a pointer to the list of pending triggers.

virtual const DtList* DtPlan::triggerList ( ) const
virtual
virtual void DtPlan::addTriggerToExecute ( DtSimTrigger trigger)
virtual

Add a trigger to the pending trigger list.

virtual void DtPlan::removeTriggerFromPendingExecution ( DtSimTrigger trigger)
virtual

Remove a trigger from the pending trigger list.

virtual DtList* DtPlan::executionStack ( )
virtual

Get a pointer to the execution stack.

virtual const DtList* DtPlan::executionStack ( ) const
virtual
virtual bool DtPlan::validatePlan ( )
virtual

Checks, and potentially fixes, the plan.

Returns
True if the plan is valid.
virtual const DtStmtIndex& DtPlan::currentStmt ( ) const
virtual

Get the index of the Plan's "current" statement. This is either zero (if the Plan has not yet begun to execute), or indicates the last statement executed.

virtual void DtPlan::setCurrentStmt ( const DtStmtIndex nextStatement)
virtual

Set the Plan's "current" statement.

virtual void DtPlan::setCurrentStatementExecutionId ( int  id)
virtual

Sets the current task execution ID to the value specified.

virtual bool DtPlan::isComplete ( ) const
virtual

True if the Plan is considered "Complete" and no longer active.

virtual void DtPlan::setIsComplete ( bool  completeFlag = true)
virtual

Set the Plan's completion flag, if true, further execution of the Plan is disabled.

virtual void DtPlan::setLastStatementExecuted ( bool  )
virtual

{@ Accessor/mutator for whether or not the last statement in the plan has been executed (main block is complete)

virtual bool DtPlan::lastStatementExecuted ( ) const
virtual
virtual bool DtPlan::isAbandoned ( ) const
virtual
Returns
True if the plan has been abandoned.
Note
The plan will also return true of isComplete() if it has been abandoned.
virtual void DtPlan::setIsAbandoned ( bool  v)
virtual

Sets whether or not the plan is abandoned. This should not normally be called from outside this class.

virtual bool DtPlan::isExecuting ( ) const
virtual
Returns
True if the plan is running.
virtual DtPlanStatus DtPlan::currentStatus ( ) const
virtual
Returns
A filled out DtPlanStatus entry with the current state of the plan.
virtual void DtPlan::reset ( )
virtual

Clear all registered triggers and reset the Plan to its initial state.

Reimplemented from DtReaderWriter.

virtual void DtPlan::abandonPlan ( bool  sendWaitTask)
virtual

Reset the plan, but then set isComplete and set the current statement to the last one in the Main Block.

Parameters
sendWaitTaskindicates whether or not a wait task will be sent to the entity when its plan is abandoned. This will stop its current task, if true.
virtual void DtPlan::restartPlan ( bool  sendWaitTask = true)
virtual

Reset sthe plan.

Parameters
sendWaitTaskindicates whether or not a wait task will be sent to the entity when its plan is abandoned. This will stop its current task, if true.
virtual bool DtPlan::translateIndex ( DtStmtIndex stmtIndex) const
virtual

If you have a DtStmtIndex object that used to point into the original DtPlan before it was copied/cloned into this one, use the translateIndex function to convert it to point into this DtPlan. Returns true if a match was found, false otherwise.

virtual void DtPlan::translateIndices ( DtList &  stmtIndexList) const
virtual

If you have a list of DtStmtIndex objects that used to point into the original DtPlan before it was copied/cloned into this one, use the translateIndicies function to convert them to point into this DtPlan.

virtual void DtPlan::tick ( )
virtual

The Plan tick function. Presently this ticks all the Plan's triggers.

virtual void DtPlan::mergeEditedPlanWith ( const DtPlan oldPlan)
virtual

This plan is an edited version of an old one, copy and/or translate over any information that we want to preserve when we replace the old plan with this one (e.g. current statement subscriber).

virtual DtRecursiveSimBlockIterator* DtPlan::spawnRecursiveIterator ( ) const
virtual

Spawns an iterator that iterates over the statements in the plan. The caller MUST DELETE the iterator when doen using it!

virtual void DtPlan::putSelf ( std::string &  fp,
int  indentLevel = 0,
bool  writeUnspecified = false,
const DtFilename &  path = DtReaderWriter::appPath() 
)
virtual

This is the top-level reader-writer member function for saving self to file. Override to get a chance to set reader-writer member variables before saving.

Reimplemented from DtReaderWriter.

virtual void DtPlan::getSelf ( DtlObjPtr  args,
const DtReaderWriter::SearchPaths searchPaths = DtReaderWriter::SearchPaths(),
const DtVariableBindingsList variableBindings = DtReaderWriter::nullVariableReference() 
)
virtual

This is the top-level reader-writer member function for reading in self from file. Override to get a chance to initialize plan from reader-writer members.

Reimplemented from DtReaderWriter.

virtual void DtPlan::addStatementChangedCallback ( DtCurrentStatementChangedCallbackFcn  fcn,
void *  usrData 
)
virtual

Adds a callback which is called whenever the current statement changes or whenever the status of the plan changes. (abandoned, complete, executing)

virtual void DtPlan::removeStatementChangedCallback ( DtCurrentStatementChangedCallbackFcn  fcn,
void *  usrData 
)
virtual

Removes a statement changed callback.

virtual void DtPlan::addTickCallback ( DtStmtTickCallbackFcn  fcn,
void *  usrData 
)
virtual

Adds a statement callback which is called every tick.

virtual void DtPlan::removeTickCallback ( DtStmtTickCallbackFcn  fcn,
void *  usrData 
)
virtual

Removes a statement tick callback.

virtual void DtPlan::reissueStatementIds ( DtSimStatement stmt)
virtual

Gives new statement ids to all statements in this statement (including sub blocks)

virtual void DtPlan::pushExecutingTrigger ( int  )
virtual

If in a trigger, the current statement id of the trigger being executed.

virtual void DtPlan::popExecutingTrigger ( )
virtual
virtual int DtPlan::executingTriggerStatementId ( ) const
virtual
virtual std::vector<int> DtPlan::executingTriggerStatementIds ( ) const
virtual

Ids in order of execution.

virtual DtUUID DtPlan::executingTriggerName ( ) const
virtual

If in a trigger, the name of the trigger.

virtual std::vector<DtUUID> DtPlan::executingTriggerNames ( ) const
virtual

Names in order of execution.

virtual std::vector<DtUUID> DtPlan::registeredTriggerNames ( ) const
virtual

Triggers registered.

virtual bool DtPlan::triggerIsRunning ( const DtUUID ) const
virtual

Returns true if the named trigger is currently running.

virtual bool DtPlan::triggerIsRegistered ( const DtUUID ) const
virtual

Returns true if the current named trigger is registered.

virtual void DtPlan::removeScheduledTriggers ( const DtUUID )
virtual

Removes all occuranes of named trigger from the pending triggers list.

virtual void DtPlan::mapRegisteredTriggersToTriggerStatements ( )
virtual

Goes through and maps trigger statements to the register trigger statemnt it represents.

virtual DtSimStatement* DtPlan::lookupStatementByCursor ( int  cursor)
virtual

Look up statement at the given cursor location (an integer identifying the overall position of a statement in a plan.

virtual DtSimStatement* DtPlan::lookupStatementByStatementId ( int  ) const
virtual
virtual void DtPlan::setContinuePlan ( bool  )
virtual

Sets whether or not to continue plan execution.

virtual std::vector<DtReaderWriter*> DtPlan::substituteVariablesIn ( DtReaderWriter ) const
virtual

Iterates over all items in the reader writer registry of the supplied item, and, if any of the variables are UUIDs and they happen to match the UUID of the simulation object or created object variable, those values in the reader/writer supplied will be set to those of the variable. This call will return the values that were substituted. Do not delete the returned memory as this is the reader/writer value as it exists.

virtual std::vector<DtReaderWriter*> DtPlan::substitutedValues ( const DtReaderWriter ) const
virtual

Returns a vector list of reader/writer values (cloned from the source) that were substituted. The results of this call must be freed by the user.

virtual bool DtPlan::subsituteUUIDIfAvailable ( const DtReaderWriter ,
DtUUID uuid 
) const
virtual

If, in the supplied reader/writer there is a matching UUID to substitute, place the resultant value in the givem UUID and return true.

virtual void DtPlan::removeTopExecutionStack ( )
virtual

Removes and deletes the first DtStmtIndex* entry from the execution stack. If there is only one entry in the execution stack, it won't do anything. It is for avoiding the plan to check to see if the new top statement is still executing, as done in popExecutionStack().

virtual void DtPlan::addSkipTaskCallback ( DtSkipTaskCallbackFcn  fcn,
void *  usrData 
)
virtual

Adds a callback which is called every time a skip task command is received.

virtual void DtPlan::removeSkipTaskCallback ( DtSkipTaskCallbackFcn  fcn,
void *  usrData 
)
virtual

Removes a skip task callback.

virtual void DtPlan::invokeSkipTaskCallbacks ( )
virtual
virtual void DtPlan::processAwaitingTask ( )
protectedvirtual

Awaiting task then (re)starts execution of plan.

virtual void DtPlan::createMainBlock ( )
protectedvirtual

Create the Main Block. This is only called by init(), and should only be called once.

virtual void DtPlan::copyMainBlock ( const DtPlan otherPlan)
protectedvirtual

Copy the main block (and all nested blocks) and the Execution Stack from another Plan, and translate any/all DtStmtIndex objects to point into the new main block structure.

virtual void DtPlan::copyAndTranslateExecutionStack ( const DtPlan otherPlan)
protectedvirtual

Copy the other Plan's execution stack and translate all DtStmtIndex objects in the execution stack to point into the new main block. (Called by copyMainBlock.)

virtual void DtPlan::copyAndTranslateTriggers ( const DtPlan otherPlan)
protectedvirtual

Copy the other Plan's pending triggers and translate all DtStmtIndex objects in the triggers to point into the new main block. (Called by copyMainBlock.)

virtual void DtPlan::curStmtChanged ( )
protectedvirtual

Whenever a change is made that changes the effective current statement, this function is called so that the front end can be told of the change.

virtual void DtPlan::continuePlan ( )
protectedvirtual

ContinuePlan will continue the Plan execution until either the task request pending flag is cleared, or the plan complete flag is set.

virtual void DtPlan::stepStatement ( bool  forceStep = false)
protectedvirtual

StepStatement will step to the next statement in the Plan. This is usually the first half of an execution cycle. Note: this assumes that !isComplete() and !myCurrentStmt.isNull().

Some statements that, even if they are stepped, stay where they are. If forceStep is true it will give a hint to that statement to move on anyway

virtual void DtPlan::executeStatement ( )
protectedvirtual

ExecuteStatement will execute the current statement in the Plan. This is usually the second half of an execution cycle. Note: this assumes that !isComplete() and !myCurrentStmt.isNull().

virtual void DtPlan::clearTriggerList ( )
protectedvirtual

ClearTriggerList deletes the registered triggers and clears the pending trigger list.

virtual void DtPlan::clearExecutionStack ( )
protectedvirtual

ClearExecutionStack clears the execution stack and resets the Plan. Adds a single NULL DtStmtIndex item to its list (indicating the start of the plan).

virtual void DtPlan::emtpyExecutionStack ( )
protectedvirtual

Removes and deletes all DtStmtIndex* entries from the execution stack.

virtual void DtPlan::mapExecutionStackToRwExecutionStack ( DtRwPlanExecutionStack rwExecutionStack)
protectedvirtual

Called by putSelf().

Fills the specified rwExecutionStack with the data from myExecutionStack.

virtual void DtPlan::mapPendingTriggersToPendingTriggerDataList ( )
protectedvirtual

Called by putSelf().

Fills the specified rwExecutionStack with the data from myExecutionStack.

virtual void DtPlan::mapOldExecutionCursorStackToExecutionStack ( const DtRwIntegerList executionCursorStack)
protectedvirtual

Called by getSelf().

Fills myExecutionStack with the data from the Pre VRF 3.12 style executionCursorStack.

virtual void DtPlan::mapRwExecutionStackToExecutionStack ( const DtRwPlanExecutionStack rwExecutionStack)
protectedvirtual

Fills myExecutionStack with the data from rwExecutionStack.

virtual void DtPlan::mapPendingTriggerDataToPendingTriggers ( )
protectedvirtual

Called by getSelf().

Fills myExecutionStack with the data from the Pre VRF 3.12 style executionCursorStack.

virtual int DtPlan::statementIdToCursor ( DtStmtIdType  statementId)
protectedvirtual

Maps statementId to cursor and vice-versa. Cursor is the overall position of a statement in the plan.

virtual DtStmtIdType DtPlan::cursorToStatementId ( int  cursor)
protectedvirtual
virtual DtSimStatement* DtPlan::lookupStatementByStatementId ( DtSimBlock ,
int  ,
std::set< DtUUID > &  triggersVisited 
) const
protectedvirtual
virtual void DtPlan::createTriggersFromWhenBlocks ( )
protectedvirtual

Creates and maps new triggers to when blocks.

virtual void DtPlan::createTriggersFromWhenBlocks ( DtSimBlock )
protectedvirtual
virtual void DtPlan::createTriggersFromWhenBlocks ( DtSimBlock ,
DtSimStatement  
)
protectedvirtual
virtual void DtPlan::removeTriggerRegistrationFrom ( DtSimBlock ,
const DtUUID  
)
protectedvirtual

Removes any register/unregister trigger statement with the given trigger name.

virtual void DtPlan::removeTriggerRegistrationFrom ( DtSimBlock ,
DtSimStatement ,
const DtUUID  
)
protectedvirtual
virtual void DtPlan::mapExecutionStackToExecutingTriggers ( )
protectedvirtual

Maps the triggers in the execution stack to exectuing triggers.

Member Data Documentation

DtRwBoolean DtPlan::myTaskRequestPending
protected

The TaskRequestPending flag is set to true when an Entity requests a new task, and is cleared when a new task is sent by the Plan engine. There may be any number of non-task statements processed between these two events. Further processing of the entity's plan is paused when this flag is cleared.

DtPlanBlock* DtPlan::myMainBlock
protected

The main Block is the top-level Block of the plan and is the only Block that is considered to be "owned" by this DtPlan object.

DtList DtPlan::myExecutionStack
protected

The top of the execution stack is the Plan's current statement (fetched with currentStmt()). Whenever a retasking trigger fires, it pushes this stack down so that the Plan can pick up where it left off at the end of the trigger.

DtRwBoolean DtPlan::myIsComplete
protected

myIsComplete Disables awaitingTask() and causes it to emit continuous Wait tasks.

DtRwBoolean DtPlan::myLastStatementExecuted
protected

myLastStatementExecuted makes sure that nothing will get executed in the plan after triggers have been triggered

DtRwBoolean DtPlan::myAbandoned
protected

True if this plan has been abandoned. If the plan is abandoned, it will also show as "complete", since it is not running.

DtList DtPlan::myPendingTriggers
protected

A list of all registered DtSimTriggers.

DtCallbackList<const DtPlan&> DtPlan::myStatementChangedCbs
protected

A list of all the DtCurrentStatementChangedCallbackFcn callbacks.

DtCallbackList<DtPlan&> DtPlan::myStatementTickCbs
protected

A list of all the DtTickCallbackFcn callbacks.

DtNoArgumentCallbackList DtPlan::myStatementSkipTaskCbs
protected

A list of all the DtStmtTickCallbackFcn callbacks.

DtRwTriggerDataList DtPlan::myPendingTriggerDataList
protected

Reader-writer members used to hold checkpoint information about the plan. These variables only contain valid data just before writing to file, and just after reading from file.

List of DtTriggerData items, representing the list of pending triggers.

DtRwTriggersList DtPlan::myTriggers
protected

List of all possible triggers in the plan. This will be a collection of when statements that represent all the possible triggers trigger.

bool DtPlan::myExecutionIsEnabled
protected

Flag indication whether execution is enabled (can we start or advance through plan statements?).

bool DtPlan::myWantsExecutionStateEnabled
protected
bool DtPlan::myAwaitingTaskFlag
protected

Flag indicating we've received an awaiting task request.

DtRwUUID DtPlan::myPlanName
protected
bool DtPlan::myContinuePlan
protected
DtPlanExecutor* DtPlan::myPlanExecutor
protected
DtPlanStatus DtPlan::myLastSentStatus
protected

The status that was last sent out though the curretStatement callbacks.

DtRwInt DtPlan::myQuickLaunchFlags
protected

Additional data used to indicate if this is a quick launch plan and the icon associated with it. currently only global plans can be quick launch plans.

DtRwString DtPlan::myQuickLaunchIcon
protected
DtRwInt DtPlan::myOrdinal
protected
DtRwString DtPlan::myPlanSummary
protected

Plan summary. Currently used by synchronization matrices only.

DtRwIntegerList DtPlan::myExecutingTriggers
protected
DtRwVariableBindings DtPlan::myPlanVariables
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)