![]() |
VR-Forces 5.0.1 Developer's Guide
|
DtSimCondExpr is an abstract base class representing various Conditional Expressions used by the Plan engine and triggers.
For those conditional expressions that can use a modifier for determining whether or not the conditional expression can apply to a pattern (DtCeCheckEntityIdentificationLevel, DtCeEntDestroyed, etc.) the pattern is defined as follows as a comma delimited text that must have the following format:
PATTERN,[ANY],[INVERT],<EXCLUDEDESTROYED|LOOKATALL>,[force number],[super type],[kind],[domain],[country],[category],[subcategory],[specific],[extra]
Once the keyword PATTERN is seen by the conditional expression it will know to look for the specific format supplied above to fill out the pattern match. Any item in a [] can be filled in or left blank. Any item in a <> must have one of the options selected.
If the keyword ANY is supplied it means that it will also apply to any subordinate of the entity this conditional is applied to also meets the requirement of the conditional If the keyword INVERT is supplied it means it will search for any pattern that is not the pattern specified If EXCLUDEDESTROYED is given destroyed objects will be excluded from the search Force number may be omitted to ignore force in a search. Examples:
Match only non-destroyed friendly M1A2s: PATTERN,,,EXCLUDEDESTROYED,1,1,1,1,225,1,1,3,0
Match all humans of any force: PATTERN,,,LOOKATALL,,1,3,-1,-1,-1,-1,-1,-1

Public Member Functions | |
| DtSimCondExpr () | |
| DtSimCondExpr (const DtString &name, DtReaderWriterRegistry *parentRegistry=NULL) | |
| DtSimCondExpr (const DtSimCondExpr &orig, DtReaderWriterRegistry *parentRegistry=NULL) | |
| virtual | ~DtSimCondExpr () |
| virtual bool | init () |
| DtSimCondExpr & | operator= (const DtSimCondExpr &orig) |
| virtual DtSimCondExpr * | clone (DtReaderWriterRegistry *parentRegistry=NULL) const =0 |
| virtual int | type () const =0 |
| virtual void | setEvaluator (DtEvaluator *evaluator) |
| DtEvaluator * | evaluator () |
| virtual bool | evaluate (DtLocalObject *owner, const DtSimulationServices *simManager, const DtPlan *=0) const |
| virtual int | subExprCount () const |
| virtual DtSimCondExpr * | subExpr (int index) |
| virtual DtString | modifierStringRep (const DtString &) const |
| virtual DtString | stringRep (int subExprIndex=DtSR_EXPR) const =0 |
| DtString | stringRepFull () const |
| virtual char * | netRep () |
| virtual int | netRepSize () const |
| virtual bool | setFromNet (const char *contentBuffer, unsigned contentSize) |
| virtual bool | setToNet () |
| virtual const DtUUID & | simulationObject () 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 void | reset () |
| virtual int | alignment () const |
| virtual bool | variableIsBound () const |
| virtual void | unbindVariable () |
| virtual void | setName (const DtString &) |
| virtual const char * | readerWriterType () const |
| virtual const char * | xmlType () const |
| virtual DtString | prettyPrint () const |
| std::string | debugText () const |
| virtual void | bindVariables (DtVariableBindingsList variableBindings) |
| virtual std::list < DtVariableNameType > | unboundVariables () const |
| bool | invalid () const |
| virtual bool | hasChild (const DtReaderWriter *p) const |
| virtual bool | hasVariableReference () const |
| virtual void | bindLocalVariables (const DtVariableBindingsList &variableBindings) |
| virtual void | recordUpdateTime () const |
| virtual bool | wasUpdatedSince (DtTime t) const |
| virtual bool | changedSinceLastChecked () |
| virtual bool | peekChangedSinceLastChecked () const |
| virtual void | 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 DtSimCondExpr * | createCondExpr (DtlObjPtr mtlStream) |
| static void | addCondExprCreatorFcn (const DtString &type, const int intType, DtCondExprCreatorFcn fcn) |
| static void | setFactory (DtCondExprFactory *factory) |
| static DtCondExprFactory * | factory () |
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_EXPR = -1 |
Protected Member Functions | |
| virtual char * | createNetworkBuffer () |
Protected Member Functions inherited from DtReaderWriter | |
| virtual void | bindToRwAsVariable (const DtReaderWriter *rw) |
Protected Attributes | |
| char * | myNetRep |
| DtEvaluator * | myEvaluator |
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 DtCondExprFactory * | myFactory |
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 |
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 )() |
| DtSimCondExpr::DtSimCondExpr | ( | ) |
default constructor
| DtSimCondExpr::DtSimCondExpr | ( | const DtString & | name, |
| DtReaderWriterRegistry * | parentRegistry = NULL |
||
| ) |
real constructor
| DtSimCondExpr::DtSimCondExpr | ( | const DtSimCondExpr & | 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.
| DtSimCondExpr& DtSimCondExpr::operator= | ( | const DtSimCondExpr & | orig | ) |
assignment operator
|
pure virtual |
clone operator
Implemented in DtCeResourceOperator, DtCeSimTime, DtCeConstant, DtCeNot, DtCeRandom, DtCeAltitude, DtCeEntDiGuyAppearance, DtCeReceiveTextMessage, vrfAddConditionalExample::MyConditionalExpression, DtCeCheckEntityIdentificationLevel, DtCeEntDiGuyAnimation, DtCeEntEmbarkationStateChange, DtCeMissileApproachWarning, DtCeScenarioEvent, DtCeSurrender, DtCeEntityCreated, DtCeBreached, DtCeEntInArea, DtCeEnvironmentalActive, DtCeSimDateTime, DtCeSimTimeOfDay, DtCeEntDestroyed, DtCeEntHasTarget, DtCeEntLeftOfLine, DtCeEntUnderFire, DtCeAnd, DtCeEntIndependentlyTasked, DtCeOr, and DtCeSyncMatrixPlansCompleted.
|
pure virtual |
Returns the type of conditional expression defined in condExprTypes.h.
Implemented in DtCeResourceOperator, DtCeSimTime, DtCeConstant, DtCeNot, DtCeRandom, DtCeAltitude, DtCeReceiveTextMessage, DtCeEntDiGuyAppearance, DtCeSurrender, vrfAddConditionalExample::MyConditionalExpression, DtCeCheckEntityIdentificationLevel, DtCeEntDiGuyAnimation, DtCeEntEmbarkationStateChange, DtCeMissileApproachWarning, DtCeScenarioEvent, DtCeEntityCreated, DtCeSimDateTime, DtCeSimTimeOfDay, DtCeBreached, DtCeEntInArea, DtCeEnvironmentalActive, DtCeAnd, DtCeEntDestroyed, DtCeEntHasTarget, DtCeEntLeftOfLine, DtCeEntUnderFire, DtCeOr, DtCeEntIndependentlyTasked, and DtCeSyncMatrixPlansCompleted.
|
virtual |
Set the evaluator object to be used in our evaluate() function. Takes over responsiblity for deleting the memory associated with the DtEvaluator. You must set an evaluator if you intend to call evaluate() on the conditional expression.
|
inline |
|
virtual |
Evaluate this conditional expression for the entity with the given object object plan (which will have the same UUID as the owner).
Uses the DtEvaluator object set in setEvaluator() to actually perform the evaluation. An evaluator must be set before this function is called. Evaluation is expected to be performed by back-ends only (remote-control applications such as GUIs will not typically call this function).
If issued from a plan, the owner is the owner of that plan
|
virtual |
Get the number of sub-expressions nested inside this expression.
Reimplemented in DtCeNot, and DtLogicalOperatorCondition.
|
virtual |
Get a pointer to any particular sub-expression nested inside this expression. Sub-expressions are indexed as C arrays are (i.e. starting with sub-expression #0).
Reimplemented in DtCeNot, and DtLogicalOperatorCondition.
Given the modifier string, come up with a human readable name for it.
Get a readable string representation of this level of this expression.
The subExprIndex argument indicates which stringRep to get if this expression can have sub-expressions. If a sub-expression index >= 0 is given, the string returned will be the one that should precede that sub-expression. A sub-expression index of DtSimCondExpr::DtSR_EXPR requests the string that should follow any and all sub-expressions, this is the value that should be used for expressions that have no subExprs (i.e. subExprCount() == 0).
Implemented in DtCeResourceOperator, DtCeAltitude, DtCeSimTime, DtCeNot, DtCeConstant, DtCeEntInArea, DtCeSurrender, DtCeCheckEntityIdentificationLevel, DtCeEntLeftOfLine, DtCeEntEmbarkationStateChange, DtCeRandom, DtCeEntDiGuyAnimation, DtCeEntDiGuyAppearance, vrfAddConditionalExample::MyConditionalExpression, DtCeEntHasTarget, DtCeEntUnderFire, DtCeEntDestroyed, DtCeScenarioEvent, DtCeEntIndependentlyTasked, DtCeReceiveTextMessage, DtCeBreached, DtCeEntityCreated, DtCeMissileApproachWarning, DtCeSimDateTime, DtCeEnvironmentalActive, DtCeSimTimeOfDay, DtCeAnd, DtCeOr, and DtCeSyncMatrixPlansCompleted.
| DtString DtSimCondExpr::stringRepFull | ( | ) | const |
Get a readable string representation of this full expression. This calls stringRep and stringRepFull recursively for each subExpr and combines them into a single string.
|
virtual |
|
inlinevirtual |
These 3 should become pure virtual functions.
Reimplemented in DtCeResourceOperator, DtCeNot, DtCeAltitude, DtCeSimTime, DtCeConstant, DtCeEntInArea, DtCeSurrender, DtCeCheckEntityIdentificationLevel, DtCeEntLeftOfLine, DtCeEntEmbarkationStateChange, DtCeRandom, DtCeEntDiGuyAnimation, DtCeEntDiGuyAppearance, vrfAddConditionalExample::MyConditionalExpression, DtCeEntHasTarget, DtCeEntUnderFire, DtCeEntDestroyed, DtCeScenarioEvent, DtCeEntIndependentlyTasked, DtCeReceiveTextMessage, DtLogicalOperatorCondition, DtCeBreached, DtCeEntityCreated, DtCeMissileApproachWarning, DtCeSimDateTime, DtCeEnvironmentalActive, DtCeSimTimeOfDay, and DtCeSyncMatrixPlansCompleted.
|
inlinevirtual |
Reimplemented in DtCeResourceOperator, DtCeNot, DtCeAltitude, DtCeSimTime, DtCeConstant, DtCeEntInArea, DtCeSurrender, DtCeCheckEntityIdentificationLevel, DtCeEntLeftOfLine, DtCeEntEmbarkationStateChange, DtCeRandom, DtCeEntDiGuyAnimation, DtCeEntDiGuyAppearance, vrfAddConditionalExample::MyConditionalExpression, DtCeEntHasTarget, DtCeEntUnderFire, DtCeEntDestroyed, DtCeScenarioEvent, DtCeEntIndependentlyTasked, DtCeReceiveTextMessage, DtLogicalOperatorCondition, DtCeBreached, DtCeEntityCreated, DtCeMissileApproachWarning, DtCeSimDateTime, DtCeEnvironmentalActive, DtCeSimTimeOfDay, and DtCeSyncMatrixPlansCompleted.
|
inlinevirtual |
Reimplemented in DtCeResourceOperator, DtCeNot, DtCeAltitude, DtCeSimTime, DtCeConstant, DtCeEntInArea, DtCeSurrender, DtCeCheckEntityIdentificationLevel, DtCeEntLeftOfLine, DtCeEntEmbarkationStateChange, DtCeRandom, DtCeEntDiGuyAnimation, DtCeEntDiGuyAppearance, vrfAddConditionalExample::MyConditionalExpression, DtCeEntHasTarget, DtCeEntUnderFire, DtCeEntDestroyed, DtCeScenarioEvent, DtCeEntIndependentlyTasked, DtCeReceiveTextMessage, DtLogicalOperatorCondition, DtCeBreached, DtCeEntityCreated, DtCeMissileApproachWarning, DtCeSimDateTime, DtCeEnvironmentalActive, DtCeSimTimeOfDay, and DtCeSyncMatrixPlansCompleted.
|
virtual |
Static functions.
If there is a simulation object that has satisfied the requirement of this conditional expression it is returned from this statement. Calls down to evaluator to return the simulation object that was found during evaluation
|
static |
Construct an empty conditional expression of the appropriate type. Creates a new conditional expression, given a pointer to an MTL stream. It parses the stream to extract the type of conditional expression to create. Then it calls the conditional expression factory's create() member function with the statement type. This returns a new instance of the conditional expression type. The conditional expression's getData() member function is then called to retrieve the conditional expression parameters from the stream. The pointer to the new conditional expression is returned.
|
static |
Adds a conditional expression creator member function to the conditional expression factory.
|
static |
|
static |
|
protectedvirtual |
|
static |
A constant for use as the subExprIndex argument to stringRep().
|
staticprotected |
|
protected |
|
protected |