![]() |
VR-Forces 5.0.2 Developer's Guide
|
class DtSimStatement:
Instances of DtSimStatement represent any kind of statement used in a Plan.
Related Examples

Public Member Functions | |
| DtSimStatement () | |
| DtSimStatement (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtSimStatement (const DtSimStatement &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| virtual | ~DtSimStatement () |
| virtual bool | init () |
| DtSimStatement & | operator= (const DtSimStatement &orig) |
| virtual DtSimStatement * | clone (DtReaderWriterRegistry *parentRegistry=NULL) const =0 |
| virtual int | type () const =0 |
| virtual bool | validate () |
| virtual void | execute (DtPlan &planContext)=0 |
| virtual void | step (DtPlan &planContext, bool forceStep=false) |
| DtSimStatement * | nextStmt () const |
| DtSimStatement * | prevStmt () const |
| virtual DtStmtIdType | statementId () const |
| virtual void | setStatementId (DtStmtIdType arg) |
| virtual DtSimBlock * | parentBlock () const |
| virtual void | setParentBlock (DtSimBlock *arg) |
| virtual int | subBlockCount () const |
| virtual DtSimBlock * | subBlock (int index) |
| virtual DtRecursiveSimStatementIterator * | spawnRecursiveIterator () const |
| virtual DtSimStatement * | lookupStatement (DtStmtIdType statementId) |
| virtual void | setStatementDescription (const DtString &) |
| virtual const DtString & | statementDescription () const |
| virtual DtString | stringRep (int subBlockIndex=DtSR_STMT) const =0 |
| virtual char * | netRep () |
| virtual int | netRepSize () const |
| virtual bool | setFromNet (const char *contentBuffer, unsigned contentSize) |
| virtual bool | setToNet () |
| virtual bool | isSameStatement (DtSimStatement *) |
| virtual void | upgradeTriggerUUID (const boost::unordered_map< DtUUID, DtUUID > &) |
| virtual void | reset () |
Public Member Functions inherited from DtRwListedObj | |
| DtRwListedObj () | |
| DtRwListedObj (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtRwListedObj (const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtRwListedObj (const DtRwListedObj &orig) | |
| virtual | ~DtRwListedObj () |
| DtRwListedObj & | operator= (const DtRwListedObj &orig) |
| DtRwListedObj * | next () const |
| DtRwListedObj * | prev () const |
| DtRwListedObj * | wrapNext () const |
| DtRwListedObj * | wrapPrev () const |
| virtual const char * | readerWriterType () const |
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 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 int | alignment () const |
| virtual bool | variableIsBound () const |
| virtual void | unbindVariable () |
| virtual void | setName (const DtString &) |
| 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 | 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 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) |
Static Public Member Functions | |
| static DtStmtIdType | generateNewStmtId () |
| static DtSimStatement * | createStatement (DtlObjPtr mtlStream, DtReaderWriterRegistry *parentRegistry=NULL) |
| static DtSimStatement * | createStatement (int statementType, DtReaderWriterRegistry *parentRegistry=NULL) |
| static void | addStatementCreatorFcn (const DtString &type, int intType, DtStatementCreatorFcn fcn) |
| static void | setFactory (DtStatementFactory *factory) |
| static DtStatementFactory * | factory () |
| static bool | getStatementNameFromStatementType (int statementType, DtString &statementName) |
| static bool | getStatementTypeFromStatementName (const DtString &statementName, int &statementType) |
| static bool | addStatementTypeMapping (const DtString &statementName, int taskType) |
| static bool | removeStatementTypeMapping (const DtString &statementName, int statementType) |
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 char * | theXmlType () |
| static const DtFilename & | appPath () |
| static void | setFactoryCreatorFunction (DtReaderWriterFactoryCreatorFcn fcn) |
| static void | createReaderWriterFactory () |
| static void | cleanupFactory () |
| static DtReaderWriterFactory * | factory () |
| static void | setOutputStream (DtOutputStream *stream) |
| static DtOutputStream & | outputStream () |
| static DtReaderWriter * | createFromXmlFile (const DtFilename &, bool createAsProperty=false) |
| static DtReaderWriter * | createFromXml (const DtString &, bool createAsProperty=false) |
| static DtReaderWriter * | createFromEnvironment (DtEnvironmentSP, bool createAsProperty=false) |
| static DtString | getAttribute (DtEnvironmentSP env, const DtString &name, DtEnvValueSP root) |
Static Public Attributes | |
| static const int | DtSR_STMT = -1 |
Protected Member Functions | |
| virtual char * | createNetworkBuffer () |
| virtual bool | compare (DtSimStatement *) |
Protected Member Functions inherited from DtReaderWriter | |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
Protected Attributes | |
| DtStmtIdType | myStatementId |
| DtSimBlock * | myParentBlock |
| char * | myNetRep |
| DtRwString | myStatementDescription |
Protected Attributes inherited from DtRwListedObj | |
| DtList * | myList |
| DtListItem * | myItem |
Protected Attributes inherited from DtReaderWriter | |
| const DtSymbolString | myName |
| DtReaderWriterRegistry | myRegistry |
| DtReaderWriterRegistry * | myParentRegistry |
| bool | myValueSpecified |
| bool | myReadOnlyFlag |
| bool | myIsVariableReference |
| DtSymbolString | myVariableName |
| bool | myVariableIsBound |
| DtReaderWriter * | myDefaultValue |
| aliasContainer | myAliases |
| bool | myInvalid |
| bool | myChangedFlag |
Static Protected Attributes | |
| static DtStatementFactory * | myFactory |
| static DtStringIntMapper | theStatementNameMapper |
Static Protected Attributes inherited from DtReaderWriter | |
| static DtString | theUnspecifiedValue |
| static DtGetSelfCallbackInfo | thePostGetSelfCallback |
| static DtPutSelfCallbackInfo | thePrePutSelfCallback |
| static const DtVariableBindingsList | theEmptyVariableBindingsList |
| static bool | theCreatorFcnSet |
| static DtReaderWriterFactory * | theFactory |
| static DtReaderWriterFactoryCreatorFcn | theFactoryCreatorFcn |
| static bool | thePutIndent |
| static DtOutputStream * | theOutputStream |
Friends | |
| class | DtStmtIndex |
Additional Inherited Members | |
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 )() |
| DtSimStatement::DtSimStatement | ( | ) |
Default constructor.
| DtSimStatement::DtSimStatement | ( | const DtString & | name, |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) |
Usual constructor NOTE: "name" should be the statement type string.
| DtSimStatement::DtSimStatement | ( | const DtSimStatement & | orig, |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) |
Copy constructor.
|
virtual |
Destructor.
|
virtual |
Base class init does nothing, but this will be called by create, in case any other deriving class needs to do virtual allocation.
| DtSimStatement& DtSimStatement::operator= | ( | const DtSimStatement & | orig | ) |
Assignment operator (protected because this is an abstract base class).
|
pure virtual |
virtual copy constructor A typical clone function. It must be overridden by derived classes to return an exact copy of the object.
Implemented in DtUnregisterTriggerStatement, DtTriggerStmt, DtIfStmt, DtTaskStmt, DtRegisterTriggerStatement, DtDoUntilStmt, DtSimCommandStmt, DtSetDataRequestStmt, DtWhileStmt, and DtWaitUntilStmt.
|
pure virtual |
Returns the type of statement Type (defined in simStmtTypes.h)
Implemented in DtUnregisterTriggerStatement, DtRegisterTriggerStatement, DtTriggerStmt, DtIfStmt, DtTaskStmt, DtDoUntilStmt, DtSimCommandStmt, DtSetDataRequestStmt, DtWhileStmt, and DtWaitUntilStmt.
|
virtual |
Checks the statement for validity, and potentially fixes the statement to be valid.
Reimplemented in DtDoUntilStmt, and DtWhileStmt.
|
pure virtual |
Execute the current statement and make any changes to the Plan state as appropriate. Tells the statement to activate its own behavior. Each kind of statement implements this function differently. It is passed a reference to the executing DtPlan object as a “context of execution”.
Implemented in DtTriggerStmt, DtRegisterTriggerStatement, DtDoUntilStmt, DtIfStmt, DtWhileStmt, DtTaskStmt, DtSimCommandStmt, DtSetDataRequestStmt, and DtWaitUntilStmt.
Asks the statement to step the context DtPlan to the next statement. The default implementation steps to the next statement in the same parent DtSimBlock. If this is the last statement in the Block, step() calls the block’s exitFromBlock() member function.
forceStep is unused
Reimplemented in DtSimCommandStmt, DtWaitUntilStmt, and DtIfStmt.
|
inline |
Return next (previous) statements in the block, or NULL if hit the end (beginning) of the list. Statement objects are derived from DtRwListedObj and these functions are wrappers for the base class next() and prev() member functions, which cast their return values to DtSimStatement pointers.
Inline functions.
References DtRwListedObj::next().
|
inline |
References DtRwListedObj::prev().
|
virtual |
Statement Id accessors.
|
virtual |
|
virtual |
The parent statement Block. Returns a pointer to the surrounding DtSimBlock.
|
virtual |
|
virtual |
Get the number of blocks nested inside this statement.
Reimplemented in DtTriggerStmt, DtIfStmt, DtRegisterTriggerStatement, DtDoUntilStmt, DtWhileStmt, and DtWaitUntilStmt.
|
virtual |
Get a pointer to any particular block nested inside this statement. Sub-blocks are indexed as C arrays are (i.e. starting with block #0).
Reimplemented in DtTriggerStmt, DtIfStmt, DtDoUntilStmt, DtRegisterTriggerStatement, DtWhileStmt, and DtWaitUntilStmt.
|
virtual |
Spawns an iterator that iterates over the subblocks in this statement, and all their children, sub children, etc.. The caller MUST DELETE the iterator when doen using it!
|
virtual |
If statementId matches our statement, returns a pointer to us. Otherwise calls lookupStatement() for each of our subblocks, if any.
|
virtual |
If supported for display a description of this statement that can be used for display.
|
virtual |
Get a readable string representation of this statement.
The subBlockIndex argument indicates which stringRep to get if this statement can have sub-blocks. If a sub-block index >= 0 is given, the string returned will be the one that should precede that sub-block. A sub-block index of DtSimStatement::DtSR_STMT requests the string that should follow any and all sub-blocks, this is the value that should be used for statements that have no subBlocks (i.e. subBlockCount() == 0).
Implemented in DtTriggerStmt, DtIfStmt, DtRegisterTriggerStatement, DtDoUntilStmt, DtWhileStmt, DtWaitUntilStmt, DtTaskStmt, DtSimCommandStmt, and DtSetDataRequestStmt.
|
virtual |
|
virtual |
Returns sizeof(DtNetSimStatement). Derived classes should add this size to the size of their net representation (dervied class net reps should always put the DtNetSimStatement at the start of their buffer, and put their class specific data immediately following that).
Reimplemented in DtTriggerStmt, DtIfStmt, DtDoUntilStmt, DtWhileStmt, DtTaskStmt, DtRegisterTriggerStatement, DtSetDataRequestStmt, DtSimCommandStmt, and DtWaitUntilStmt.
|
virtual |
Extracts statement Id from buffer. First 16 bytes are a DtNetSimStatement structure. Derived class data should immediately follow this. Derived classes should call down to this one to make sure statement id gets set.
Reimplemented in DtTriggerStmt, DtIfStmt, DtDoUntilStmt, DtWhileStmt, DtTaskStmt, DtRegisterTriggerStatement, DtSetDataRequestStmt, DtSimCommandStmt, and DtWaitUntilStmt.
|
virtual |
Casts myNetRep to DtNetSimStatement* and fills in structure. Derived classes should always call down to this base class version to set the DtNetSimStatement structure at the beginning of the buffer. Any dervied data should immediately follow the DtNetSimStatement structure.
Reimplemented in DtTriggerStmt, DtIfStmt, DtDoUntilStmt, DtWhileStmt, DtRegisterTriggerStatement, DtTaskStmt, DtSetDataRequestStmt, DtSimCommandStmt, and DtWaitUntilStmt.
|
static |
|
static |
Static functions.
Construct an empty conditional expression of the appropriate type. Creates a new statement, given a pointer to an MTL stream. It parses the stream to extract the type of statement to create. Then it calls the statement factory’s create() member function with the statement type. This returns a new instance of the statement type. The statement’s getData() member function is then called to retrieve the statement from the stream. The pointer to the new statement is returned.
|
static |
|
static |
Decodes a legacy stealth statement (VRF 3.9 and previous) and returns the proper statement for the current version. static DtSimStatement* createLegacyStealthStatement(DtlObjPtr mtlStream, DtReaderWriterRegistry* parentRegistry = NULL);.
Adds a statement creator member function to the statement factory.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
virtual |
Returns true if statements are equivalent. Will not check statementId.
|
virtual |
For those statements that need to, map from the old to new trigger UUID.
Reimplemented in DtTriggerStmt, DtIfStmt, DtRegisterTriggerStatement, DtDoUntilStmt, and DtWhileStmt.
|
virtual |
Called when the plan is reset, will iterate over all statements to reset as well.
Reimplemented from DtReaderWriter.
Reimplemented in DtTriggerStmt, DtIfStmt, DtDoUntilStmt, and DtWhileStmt.
|
protectedvirtual |
|
protectedvirtual |
Called from isSameStatement. Compares net reps to see if they are the same. Override to do different comparrison.
Reimplemented in DtTriggerStmt, DtIfStmt, DtDoUntilStmt, DtWhileStmt, and DtWaitUntilStmt.
|
friend |
|
static |
A constant for use as the subBlockIndex argument to stringRep().
|
protected |
A semi-unique Id value that helps trace the original identity of this statement if/when it gets copied.
|
protected |
The containing DtSimBlock object (if any).
|
staticprotected |
Factory for this class.
|
protected |
|
staticprotected |
|
protected |