![]() |
VR-Forces 4.0.4 Class Documentation
|
8 bytes total More...

Public Member Functions | |
| DtSimStatement () | |
| Default constructor. | |
| DtSimStatement (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL) | |
| Usual constructor NOTE: "name" should be the statement type string. | |
| DtSimStatement (const DtSimStatement &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| Copy constructor. | |
| virtual | ~DtSimStatement () |
| Destructor. | |
| virtual bool | init () |
| Base class init does nothing, but this will be called by create, in case any other deriving class needs to do virtual allocation. | |
| DtSimStatement & | operator= (const DtSimStatement &orig) |
| Assignment operator (protected because this is an abstract base class). | |
| virtual DtSimStatement * | clone (DtReaderWriterRegistry *parentRegistry=NULL) const =0 |
| virtual copy constructor A typical clone function. | |
| virtual int | type () const =0 |
| Returns the type of statement Type (defined in simStmtTypes.h) | |
| virtual bool | validate () |
| Checks the statement for validity, and potentially fixes the statement to be valid. | |
| virtual void | execute (DtPlan &planContext)=0 |
| Execute the current statement and make any changes to the Plan state as appropriate. | |
| virtual void | step (DtPlan &planContext) |
| Asks the statement to step the context DtPlan to the next statement. | |
| virtual bool | translateIndex (DtStmtIndex &index) |
| Translate an old statement index pointer to point to a statement in the current Plan. | |
| virtual void | translateIndices (const DtList &indices) |
| Same as translateIndex, except it operates on a DtList of DtStmtIndex's, and doesn't return a value. | |
| DtSimStatement * | nextStmt () const |
| Return next (previous) statements in the block, or NULL if hit the end (beginning) of the list. | |
| DtSimStatement * | prevStmt () const |
| virtual DtStmtIdType | statementId () const |
| Statement Id accessors. | |
| virtual void | setStatementId (DtStmtIdType arg) |
| virtual DtSimBlock * | parentBlock () const |
| The parent statement Block. | |
| virtual void | setParentBlock (DtSimBlock *arg) |
| virtual int | subBlockCount () const |
| Get the number of blocks nested inside this statement. | |
| virtual DtSimBlock * | subBlock (int index) |
| Get a pointer to any particular block nested inside this statement. | |
| virtual DtRecursiveSimStatementIterator * | spawnRecursiveIterator () const |
| Spawns an iterator that iterates over the subblocks in this statement, and all their children, sub children, etc. | |
| virtual DtSimStatement * | lookupStatement (DtStmtIdType statementId) |
| If statementId matches our statement, returns a pointer to us. | |
| virtual DtString | stringRep (int subBlockIndex=DtSR_STMT) const =0 |
| Get a readable string representation of this statement. | |
| virtual char * | netRep () |
| virtual int | netRepSize () const |
| Returns sizeof(DtNetSimStatement). | |
| virtual bool | setFromNet (const char *contentBuffer, unsigned contentSize) |
| Extracts statement Id from buffer. | |
| virtual bool | setToNet () |
| Casts myNetRep to DtNetSimStatement* and fills in structure. | |
| virtual bool | isSameStatement (DtSimStatement *) |
| Returns true if statements are equivalent. Will not check statementId. | |
Static Public Member Functions | |
| static DtStmtIdType | generateNewStmtId () |
| static DtSimStatement * | createStatement (DtlObjPtr mtlStream, DtReaderWriterRegistry *parentRegistry=NULL) |
| Static functions. | |
| static DtSimStatement * | createStatement (int statementType, DtReaderWriterRegistry *parentRegistry=NULL) |
| static DtSimStatement * | createLegacyStealthStatement (DtlObjPtr mtlStream, DtReaderWriterRegistry *parentRegistry=NULL) |
| Decodes a legacy stealth statement (VRF 3.9 and previous) and returns the proper statement for the current version. | |
| static void | addStatementCreatorFcn (const DtString &type, int intType, DtStatementCreatorFcn fcn) |
| Adds a statement creator member function to the statement factory. | |
| 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 Attributes | |
| static const int | DtSR_STMT = -1 |
| A constant for use as the subBlockIndex argument to stringRep(). | |
Protected Member Functions | |
| virtual char * | createNetworkBuffer () |
| virtual bool | compare (DtSimStatement *) |
| Called from isSameStatement. | |
Protected Attributes | |
| DtStmtIdType | myStatementId |
| A semi-unique Id value that helps trace the original identity of this statement if/when it gets copied. | |
| DtSimBlock * | myParentBlock |
| The containing DtSimBlock object (if any). | |
| char * | myNetRep |
Static Protected Attributes | |
| static DtStatementFactory * | myFactory |
| Factory for this class. | |
| static DtStringIntMapper | theStatementNameMapper |
Friends | |
| class | DtStmtIndex |
8 bytes total
class DtSimStatement:
Instances of DtSimStatement represent any kind of statement used in a Plan.
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 DtSimStatement::~DtSimStatement | ( | ) | [virtual] |
Destructor.
| virtual bool DtSimStatement::init | ( | ) | [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).
| virtual DtSimStatement* DtSimStatement::clone | ( | DtReaderWriterRegistry * | parentRegistry = NULL | ) | const [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 DtWhenStmt, DtWhileStmt, DtIfStmt, DtTaskStmt, DtSetDataRequestStmt, and DtSimCommandStmt.
| virtual int DtSimStatement::type | ( | ) | const [pure virtual] |
Returns the type of statement Type (defined in simStmtTypes.h)
Implemented in DtWhenStmt, DtWhileStmt, DtIfStmt, DtTaskStmt, DtSetDataRequestStmt, and DtSimCommandStmt.
| virtual bool DtSimStatement::validate | ( | ) | [virtual] |
Checks the statement for validity, and potentially fixes the statement to be valid.
Reimplemented in DtWhileStmt.
| virtual void DtSimStatement::execute | ( | DtPlan & | planContext | ) | [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 DtWhenStmt, DtWhileStmt, DtIfStmt, DtTaskStmt, DtSetDataRequestStmt, and DtSimCommandStmt.
| virtual void DtSimStatement::step | ( | DtPlan & | planContext | ) | [virtual] |
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.
Reimplemented in DtIfStmt.
| virtual bool DtSimStatement::translateIndex | ( | DtStmtIndex & | index | ) | [virtual] |
Translate an old statement index pointer to point to a statement in the current Plan.
This does a look-up of the statement tree to find the statement that has the same statement ID as the one the statement index used to point to. Use this after a clone to convert any old statement pointers that you want to have pointing to the clone. If any subBlocks are defined, this will search in them too. Returns true if a match was found, false otherwise.
| virtual void DtSimStatement::translateIndices | ( | const DtList & | indices | ) | [virtual] |
Same as translateIndex, except it operates on a DtList of DtStmtIndex's, and doesn't return a value.
| DtSimStatement * DtSimStatement::nextStmt | ( | ) | const [inline] |
Return next (previous) statements in the block, or NULL if hit the end (beginning) of the list.
Inline functions.
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.
References DtRwListedObj::next().
| DtSimStatement * DtSimStatement::prevStmt | ( | ) | const [inline] |
References DtRwListedObj::prev().
| virtual DtStmtIdType DtSimStatement::statementId | ( | ) | const [virtual] |
Statement Id accessors.
| virtual void DtSimStatement::setStatementId | ( | DtStmtIdType | arg | ) | [virtual] |
| virtual DtSimBlock* DtSimStatement::parentBlock | ( | ) | const [virtual] |
The parent statement Block.
Returns a pointer to the surrounding DtSimBlock.
| virtual void DtSimStatement::setParentBlock | ( | DtSimBlock * | arg | ) | [virtual] |
| virtual int DtSimStatement::subBlockCount | ( | ) | const [virtual] |
Get the number of blocks nested inside this statement.
Reimplemented in DtWhenStmt, DtWhileStmt, and DtIfStmt.
| virtual DtSimBlock* DtSimStatement::subBlock | ( | int | index | ) | [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 DtWhenStmt, DtWhileStmt, and DtIfStmt.
| virtual DtRecursiveSimStatementIterator* DtSimStatement::spawnRecursiveIterator | ( | ) | const [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 DtSimStatement* DtSimStatement::lookupStatement | ( | DtStmtIdType | statementId | ) | [virtual] |
If statementId matches our statement, returns a pointer to us.
Otherwise calls lookupStatement() for each of our subblocks, if any.
| virtual DtString DtSimStatement::stringRep | ( | int | subBlockIndex = DtSR_STMT | ) | const [pure 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 DtWhenStmt, DtWhileStmt, DtIfStmt, DtTaskStmt, DtSetDataRequestStmt, and DtSimCommandStmt.
| virtual char* DtSimStatement::netRep | ( | ) | [virtual] |
| virtual int DtSimStatement::netRepSize | ( | ) | const [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 DtWhenStmt, DtIfStmt, DtWhileStmt, DtTaskStmt, DtSetDataRequestStmt, and DtSimCommandStmt.
| virtual bool DtSimStatement::setFromNet | ( | const char * | contentBuffer, |
| unsigned | contentSize | ||
| ) | [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 DtWhenStmt, DtIfStmt, DtWhileStmt, DtTaskStmt, DtSetDataRequestStmt, and DtSimCommandStmt.
| virtual bool DtSimStatement::setToNet | ( | ) | [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 DtWhenStmt, DtIfStmt, DtWhileStmt, DtTaskStmt, DtSetDataRequestStmt, and DtSimCommandStmt.
| static DtStmtIdType DtSimStatement::generateNewStmtId | ( | ) | [static] |
| static DtSimStatement* DtSimStatement::createStatement | ( | DtlObjPtr | mtlStream, |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) | [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 DtSimStatement* DtSimStatement::createStatement | ( | int | statementType, |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) | [static] |
| static DtSimStatement* DtSimStatement::createLegacyStealthStatement | ( | DtlObjPtr | mtlStream, |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) | [static] |
Decodes a legacy stealth statement (VRF 3.9 and previous) and returns the proper statement for the current version.
| static void DtSimStatement::addStatementCreatorFcn | ( | const DtString & | type, |
| int | intType, | ||
| DtStatementCreatorFcn | fcn | ||
| ) | [static] |
Adds a statement creator member function to the statement factory.
| static void DtSimStatement::setFactory | ( | DtStatementFactory * | factory | ) | [static] |
| static DtStatementFactory* DtSimStatement::factory | ( | ) | [static] |
Reimplemented from DtReaderWriter.
| static bool DtSimStatement::getStatementNameFromStatementType | ( | int | statementType, |
| DtString & | statementName | ||
| ) | [static] |
| static bool DtSimStatement::getStatementTypeFromStatementName | ( | const DtString & | statementName, |
| int & | statementType | ||
| ) | [static] |
| static bool DtSimStatement::addStatementTypeMapping | ( | const DtString & | statementName, |
| int | taskType | ||
| ) | [static] |
| static bool DtSimStatement::removeStatementTypeMapping | ( | const DtString & | statementName, |
| int | statementType | ||
| ) | [static] |
| virtual bool DtSimStatement::isSameStatement | ( | DtSimStatement * | ) | [virtual] |
Returns true if statements are equivalent. Will not check statementId.
| virtual char* DtSimStatement::createNetworkBuffer | ( | ) | [protected, virtual] |
| virtual bool DtSimStatement::compare | ( | DtSimStatement * | ) | [protected, virtual] |
Called from isSameStatement.
Compares net reps to see if they are the same. Override to do different comparrison
Reimplemented in DtWhenStmt, DtIfStmt, and DtWhileStmt.
friend class DtStmtIndex [friend] |
const int DtSimStatement::DtSR_STMT = -1 [static] |
A constant for use as the subBlockIndex argument to stringRep().
DtStmtIdType DtSimStatement::myStatementId [protected] |
A semi-unique Id value that helps trace the original identity of this statement if/when it gets copied.
DtSimBlock* DtSimStatement::myParentBlock [protected] |
The containing DtSimBlock object (if any).
DtStatementFactory* DtSimStatement::myFactory [static, protected] |
Factory for this class.
char* DtSimStatement::myNetRep [protected] |
DtStringIntMapper DtSimStatement::theStatementNameMapper [static, protected] |