VR-Forces Development_Version Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
DtPlan Class Reference

class DtPlan: More...

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 ()
 constructor for use from within a front-end application, or when creating a plan to be assigned through DtCgf's assignPlan() function.
 DtPlan (const DtUUID &planName, DtPlanExecutor *planExecutor, const DtString &name="Plan", DtReaderWriterRegistry *parentRegistry=NULL)
 constructor for use from within a back-end application
 DtPlan (const DtString &name, const DtUUID &planName, const DtPlan &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 copy constructor
virtual ~DtPlan ()
 destructor
virtual void init ()
 The init function must be called after any non-copy constructor!
virtual DtPlanclone (const DtString &name, const DtUUID &planName, DtReaderWriterRegistry *parentRegistry=NULL) const
 Returns a newly created copy of ourself.
DtPlanoperator= (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 operator== (const DtPlan &orig) const
 Equality operator.
virtual const DtUUIDplanName () const
virtual void setPlanName (const DtUUID &name)
virtual bool planNameSpecified () const
virtual void setIsQuickLaunch (bool)
 If true will not enable execution state unless isLaunched is also true.
virtual bool isQuickLaunch () const
virtual void setShowOnQuickLaunchToolbar (bool)
 Gui element only – whether or not to show on quick launch toolbar.
virtual bool showOnQuickLaunchToolbar () const
virtual void setIsLaunched (bool)
 Only used if quick launch.
virtual bool isLaunched () const
virtual void setQuickLaunchIcon (const DtString &)
 Icon to use for display in gui.
virtual const DtStringquickLaunchIcon () const
virtual void setOrdinal (int)
 Order to display items on the quick launch toolbar.
virtual int ordinal () const
virtual void setPlanExecutor (DtPlanExecutor *planExecutor)
 Get a pointer to the sim manager.
virtual DtPlanExecutorplanExecutor () const
virtual void enableExecutionState ()
 Enable/disable plan execution state.
virtual void disableExecutionState ()
virtual bool executionState () const
virtual void awaitingTask ()
 Sets our awaiting task flag (it will be handled in processAwaitingTask(), called from tick if/when plan execution state is enabled.
virtual bool isAwatingTask () const
virtual void pushExecutionStack ()
 When a retasking trigger fires, it first calls pushExecutionStack on the DtPlan.
virtual void popExecutionStack (bool forceStep=false)
 When a retasking trigger completes, it calls popExecutionStack on the DtPlan.
virtual void executeTrigger (DtWhenBlock *whenBlock)
 When a DtSimTrigger gets executed, it calls the executeTrigger function which begins execution of the whenBlock.
virtual void executeBlock (DtSimBlock *block)
 Begin execution of a block of tasks.
virtual bool taskRequestPending () const
 Get the TaskRequestPending flag.
virtual void setTaskRequestPending (bool newValue=true)
 Set or clear the TaskRequestPending flag.
virtual bool executeTask (const DtSimTask &taskToSend) const
 Uses the plan executor to execute the specified task in the context of this plan.
virtual bool executeSetDataRequest (const DtSetDataRequest &setToSend) const
 Uses the plan executor to execute the specified set data request in the context of this plan.
virtual bool executeSimCommand (const DtSimCommand &command) const
 Uses the plan executor to execute the specified simulation command in the context of this plan.
virtual bool evaluateConditional (const DtSimCondExpr *condExpr) const
 Uses myPlanExecutor to evaluate the conditional expression.
virtual DtStmtIndex firstStmt () const
 Get the index of the first statement in the plan.
virtual DtPlanBlockmainBlock () const
 Get a pointer to the Plan's main Block.
virtual bool isEmpty () const
 True if the Plan is considered "Empty" (containing no statements).
virtual DtList * triggerList ()
 Get a pointer to the list of pending triggers.
virtual const DtList * triggerList () const
virtual void addTrigger (DtSimTrigger *trigger)
 Add a trigger to the pending trigger list.
virtual void removeTrigger (DtSimTrigger *trigger)
 Remove a trigger from the pending trigger list.
virtual DtList * executionStack ()
 Get a pointer to the execution stack.
virtual const DtList * executionStack () const
virtual bool validatePlan ()
 Checks, and potentially fixes, the plan.
virtual const DtStmtIndexcurrentStmt () const
 Get the index of the Plan's "current" statement.
virtual void setCurrentStmt (const DtStmtIndex &nextStatement)
 Set the Plan's "current" statement.
virtual void setCurrentStatementExecutionId (int id)
 Sets the current task execution ID to the value specified.
virtual bool isComplete () const
 True if the Plan is considered "Complete" and no longer active.
virtual void setIsComplete (bool completeFlag=true)
 Set the Plan's completion flag, if true, further execution of the Plan is disabled.
virtual bool isAbandoned () const
virtual void setIsAbandoned (bool v)
 Sets whether or not the plan is abandoned.
virtual bool isExecuting () const
virtual DtPlanStatus currentStatus () const
virtual void reset ()
 Clear all registered triggers and reset the Plan to its initial state.
virtual void abandonPlan (bool sendWaitTask)
 Reset the plan, but then set isComplete and set the current statement to the last one in the Main Block.
virtual void restartPlan (bool sendWaitTask=true)
 Reset sthe plan.
virtual bool translateIndex (DtStmtIndex &stmtIndex) const
 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.
virtual void translateIndices (DtList &stmtIndexList) const
 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 tick ()
 The Plan tick function. Presently this ticks all the Plan's triggers.
virtual void mergeEditedPlanWith (const DtPlan &oldPlan)
 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.
virtual
DtRecursiveSimBlockIterator
spawnRecursiveIterator () const
 Spawns an iterator that iterates over the statements in the plan.
virtual void putSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtReaderWriter::appPath())
 This is the top-level reader-writer member function for saving self to file.
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=DtReaderWriter::SearchPaths(), const DtVariableBindingsList &variableBindings=DtReaderWriter::nullVariableReference())
 This is the top-level reader-writer member function for reading in self from file.
virtual void addStatementChangedCallback (DtCurrentStatementChangedCallbackFcn fcn, void *usrData)
 Adds a callback which is called whenever the current statement changes or whenever the status of the plan changes.
virtual void removeStatementChangedCallback (DtCurrentStatementChangedCallbackFcn fcn, void *usrData)
 Removes a statement changed callback.
- Public Member Functions inherited from DtReaderWriter
 DtReaderWriter ()
 default constructor
 DtReaderWriter (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 real constructor Setting the readonly flag prevents object from writing itself to the stream.
 DtReaderWriter (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL, bool readonly=false)
 DtReaderWriter (const DtString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 pseudo-copy constructor
 DtReaderWriter (const DtSymbolString &name, const DtReaderWriter &orig, DtReaderWriterRegistry *parentRegistry=NULL)
 DtReaderWriter (const DtReaderWriter &, DtReaderWriterRegistry *parentRegistry=NULL)
 copy constructor
const DtReaderWriteroperator= (const DtReaderWriter &orig)
 assignment operator
bool operator== (const DtReaderWriter &) const
 Equivalence operator.
bool operator!= (const DtReaderWriter &rhs)
virtual ~DtReaderWriter ()
 destructor
virtual void postPutSelf ()
 Called after either version of put self (file or environment). Default is no-op.
virtual void prePutSelf ()
 Called before either version of put self (file or environment). Default is no-op.
virtual void getSelf (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Top level to read itself from an input stream.
virtual void postGetSelf ()
 Called after either version of getSelf (mtl or environment). Default is no-op.
virtual void preGetSelf ()
 Called before either version of get self (file or environment). Default is no-op.
virtual void writeSelf (std::string &fp, int indentLevel=0, bool writeUnspecified=false, const DtFilename &path=DtFilename::nullFilename())
 Called from putSelf, calls myRegistry.putSelf which in turn calls putSelf on each reader/writer in the registry.
virtual DtSymbolString name () const
 Accessor for name of this readable/writable object.
virtual void addAlias (const DtSymbolString &alias)
 Add an alias as an alternative name for this object.
virtual void addAlias (const DtString &alias)
virtual bool hasAlias (const DtSymbolString &alias)
virtual const aliasContaineraliases () const
virtual void setReadonly (bool flag)
 Set read-only flag.
bool isReadonly () const
virtual int alignment () const
 For those items that are sent over the network via HLA, this will give the network alignment.
virtual bool variableIsBound () const
virtual void unbindVariable ()
 Sets the myVariableIsBound flag to false.
virtual void setName (const DtString &)
 Set the name of the object.
virtual const charreaderWriterType () const
 Used to supply a string type that this reader writer type is.
virtual const charxmlType () const
virtual DtString prettyPrint () const
 Routine to return a human readable form of the reader/writer variable.
std::string debugText () const
virtual void bindVariables (DtVariableBindingsList variableBindings)
 Runs a variable binding pass on this reader writer and any of its children.
virtual std::list
< DtVariableNameType
unboundVariables () const
bool invalid () const
virtual bool hasChild (const DtReaderWriter *p) const
 Returns true if this variable has a child p in it's chain.
virtual bool hasVariableReference () const
 Returns true if this item or any item in the registry (recursive) is a variable reference.
virtual void bindLocalVariables (const DtVariableBindingsList &variableBindings)
 Checks to see if this RW object is a variable reference that can be bound using the provided bindings.
virtual void recordUpdateTime () const
 Can be implemented in subclasses to stamp the time when updated.
virtual bool wasUpdatedSince (DtTime t) const
 Can be implemented in subclasses to return true if an update occurred after the specified time.
virtual void putData (std::string &fp, int indentLevel=0)
 Deriving class overrides these to get/put class specific data.
virtual DtlObjPtr getData (DtlObjPtr args, const SearchPaths &searchPaths, const DtVariableBindingsList &variableBindings)
 Deriving class overrides these to get/put class specific data.
virtual void setValueSpecified (bool specified, bool recurse=false)
 The specified flags are used for optional values.
virtual bool valueSpecified () const
 The specified flags are used for optional values.
virtual bool isVariableReference () const
 Specifies whether or not this reader writer is really a variable that is specified elsewhere.
virtual void setIsVariableReference (bool value)
virtual void clearAllVariableReferenceFlags ()
 Clears out all variable reference flags from all readerwriter items in registry recursively.
virtual DtSymbolString variableName () const
 The variable name, if this object is a variable reference.
virtual void setVariableName (const DtSymbolString variableName)
 The variable name, if this object is a variable reference.
virtual const DtReaderWriterdefaultRWValue () const
 The default value to use if the reader/writer object is a variable and that variable is not specified.
virtual DtReaderWriterdefaultRWValue ()
 The default value to use if the reader/writer object is a variable and that variable is not specified.
virtual void setDefaultRWValue (DtReaderWriter *)
 Previous default value, if exists, will be removed and replaced with a clone of the supplied variable.
virtual bool checkAndSetDefaultRWValue (DtlObjPtr args, const DtReaderWriter::SearchPaths &searchPaths=SearchPaths(), const DtVariableBindingsList &variableBindings=nullVariableReference())
 Give the stream, if the stream contains a default value then set it here.
const DtReaderWriterRegistryregistry () const
 Collection of child DtReaderWriter nodes owned by this object.
DtReaderWriterRegistryregistry ()
 Collection of child DtReaderWriter nodes owned by this object.
virtual DtPropertyInterfaceproperty ()
virtual const DtPropertyInterfaceproperty () const
virtual DtString toXml () const
virtual bool toXml (const DtFilename &) const
 Writes contents of xml result to the given filename.
virtual bool fromXml (const DtString &)
 Restores object from given xml string. Returns true if valid.
virtual bool fromXmlFile (const DtFilename &)
 Restires object from given xml file.
virtual void putSelf (DtEnvironmentSP, DtEnvValueSP parent) const
virtual void putData (DtEnvironmentSP, DtEnvValueSP value) const
 Override to add attributes of actual data.
virtual void putVariableReference (DtEnvironmentSP, DtEnvValueSP value) const
 Called when the item is a variable reference.
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())
 Gets data from the environment value.
virtual void unrecognizedItem (const DtEnvironmentSP env, const DtEnvValueSP root, const SearchPaths &searchPaths, const DtVariableBindingsList &varBindings)
 Called when the xml reader tries to parse an unknown reader/writer item. Default is a no-op.
virtual void getVariableReference (DtEnvironmentSP, DtEnvValueSP value)
 Called when the item is a variable reference.

Protected Member Functions

virtual void processAwaitingTask ()
 Awaiting task then (re)starts execution of plan.
virtual void createMainBlock ()
 Create the Main Block.
virtual void copyMainBlock (const DtPlan &otherPlan)
 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 copyAndTranslateExecutionStack (const DtPlan &otherPlan)
 Copy the other Plan's execution stack and translate all DtStmtIndex objects in the execution stack to point into the new main block.
virtual void copyAndTranslateTriggers (const DtPlan &otherPlan)
 Copy the other Plan's pending triggers and translate all DtStmtIndex objects in the triggers to point into the new main block.
virtual void curStmtChanged ()
 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 continuePlan ()
 ContinuePlan will continue the Plan execution until either the task request pending flag is cleared, or the plan complete flag is set.
virtual void stepStatement ()
 StepStatement will step to the next statement in the Plan.
virtual void executeStatement ()
 ExecuteStatement will execute the current statement in the Plan.
virtual void clearTriggerList ()
 ClearTriggerList deletes the registered triggers and clears the pending trigger list.
virtual void clearExecutionStack ()
 ClearExecutionStack clears the execution stack and resets the Plan.
virtual void emtpyExecutionStack ()
 Removes and deletes all DtStmtIndex* entries from the execution stack.
virtual int statementIdToCursor (DtStmtIdType statementId)
 Maps statementId to cursor and vice-versa.
virtual DtStmtIdType cursorToStatementId (int cursor)
virtual DtSimStatementlookupStatementByCursor (int cursor)
 Look up statement at the given cursor location (an integer identifying the overall position of a statement in a plan.
virtual void mapExecutionStackToRwExecutionStack (DtRwPlanExecutionStack &rwExecutionStack)
 Called by putSelf().
virtual void mapPendingTriggersToPendingTriggerDataList ()
 Called by putSelf().
virtual void mapOldExecutionCursorStackToExecutionStack (const DtRwIntegerList &executionCursorStack)
 Called by getSelf().
virtual void mapRwExecutionStackToExecutionStack (const DtRwPlanExecutionStack &rwExecutionStack)
 Fills myExecutionStack with the data from rwExecutionStack.
virtual void mapPendingTriggerDataToPendingTriggers ()
 Called by getSelf().
- Protected Member Functions inherited from DtReaderWriter
virtual void bindToRwAsVariable (const DtReaderWriter *rw)
 Copies values from the specified DtReaderWriter.
- Protected Member Functions inherited from DtObjectDebugger< DtReaderWriter >
 DtObjectDebugger ()
 DtObjectDebugger (const DtObjectDebugger &)
 ~DtObjectDebugger ()

Protected Attributes

DtRwBoolean myTaskRequestPending
 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.
DtPlanBlockmyMainBlock
 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 myExecutionStack
 The top of the execution stack is the Plan's current statement (fetched with currentStmt()).
DtRwBoolean myIsComplete
 myIsComplete Disables awaitingTask() and causes it to emit continuous Wait tasks.
DtRwBoolean myAbandoned
 True if this plan has been abandoned.
DtList myPendingTriggers
 A list of all registered DtSimTriggers.
DtCallbackList< const DtPlan & > myStatementChangedCbs
 A list of all the DtCurrentStatementChangedCallbackFcn callbacks.
DtRwTriggerDataList myPendingTriggerDataList
 Reader-writer members used to hold checkpoint information about the plan.
bool myExecutionIsEnabled
 Flag indication whether execution is enabled (can we start or advance through plan statements?).
bool myWantsExecutionStateEnabled
bool myAwaitingTaskFlag
 Flag indicating we've received an awaiting task request.
DtRwUUID myPlanName
bool myContinuePlan
DtPlanExecutormyPlanExecutor
DtPlanStatus myLastSentStatus
 The status that was last sent out though the curretStatement callbacks.
DtRwInt myQuickLaunchFlags
 Additional data used to indicate if this is a quick launch plan and the icon associated with it.
DtRwString myQuickLaunchIcon
DtRwInt myOrdinal
- Protected Attributes inherited from DtReaderWriter
const DtSymbolString myName
DtReaderWriterRegistry myRegistry
DtReaderWriterRegistrymyParentRegistry
bool myValueSpecified
bool myReadOnlyFlag
bool myIsVariableReference
DtSymbolString myVariableName
bool myVariableIsBound
DtReaderWritermyDefaultValue
aliasContainer myAliases
 Container for the aliases which represent alternative names for the object.
bool myInvalid
 Set to true if there is a problem reading this item.

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 ()
 The type that is used when archiving to an XML stream.
static const DtFilename & appPath ()
 Gets the current working directory.
static void setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn)
 Sets the function to create the DtReaderWriterFactory.
static void createReaderWriterFactory ()
static void cleanupFactory ()
static DtReaderWriterFactoryfactory ()
static DtReaderWritercreateFromXmlFile (const DtFilename &)
 Given a filename, returns a newly created reader/writer object from the object found within.
static DtReaderWritercreateFromXml (const DtString &)
 Given a xml string, returns a newly created reader/writer object from the object found within.
static DtReaderWritercreateFromEnvironment (DtEnvironmentSP)
 Given a xml environment, returns a newly created reader/writer object from the object found within.
static DtString getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root)
 Gets the named attribute from a DtEnvValueSP.
- 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

Detailed Description

class DtPlan:

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

Examples

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.

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 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::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::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::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 ( DtWhenBlock 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.

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) const
virtual

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

Returns
True if successful.
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 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::addTrigger ( DtSimTrigger trigger)
virtual

Add a trigger to the pending trigger list.

virtual void DtPlan::removeTrigger ( 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 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.

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::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 ( )
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().

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::lookupStatementByCursor ( int  cursor)
protectedvirtual

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

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::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.

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.

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

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

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)