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 | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes
DtVrfRemoteController Class Reference

The main class for the remote control interface to VR-Forces. More...

Public Types

enum  ComponentAttachmentRule { AttachNone = 0, AttachFirst, AttachEven }

Public Member Functions

 DtVrfRemoteController (int receivePort=9000)
 Constructor.
virtual ~DtVrfRemoteController ()
virtual DtVrfMessageInterfacevrfMessageInterface () const
 Accessor for the message interface.
virtual DtUUIDNetworkManageruuidNetworkManager () const
 Accessor for the uuidNetworkManager.
virtual const DtSimulationAddress & simulationAddress () const
 Get our simulation address.
virtual int sessionId () const
virtual double simTime (const DtSimulationAddress *a=NULL) const
 Returns the simulation time of the specified back-end.
virtual const DtList & backends () const
 Get a list of known back-end simulation addresses.
virtual const DtList & pendingBackends () const
 Get a list of back-ends which are still processing the current load or save operation (if any).
virtual DtVrfBackendListenerbackendListener () const
 Get the back-end listener.
virtual void addBackendDiscoveryCallback (DtBackendCallbackFcn fcn, void *usr)
 Register backend discovery callbacks.
virtual void removeBackendDiscoveryCallback (DtBackendCallbackFcn fcn, void *usr)
virtual void addBackendRemovalCallback (DtBackendCallbackFcn fcn, void *usr)
 Register backend removal callbacks.
virtual void removeBackendRemovalCallback (DtBackendCallbackFcn fcn, void *usr)
virtual int backendsControlState () const
 Get remote backends' control state Returns DtUnknownControlType if no remote backends exist.
virtual int numberBackendsLoaded () const
 Returns the number of backends loaded with a scenario.
virtual bool allBackendsReady () const
 Returns true if all the backends have a scenario loaded and they are ready to simulate.
virtual bool backendLoaded (const DtSimulationAddress &addr) const
 Returns true if the backend specified is loaded.
virtual void modifyBackEndSetting (const DtSettingsObject *setting, const DtSimulationAddress &addr=DtSimSendToAll)
 Modify the value of a back-end settings object.
virtual void requestBackEndSetting (std::string name, DtBackEndSettingRequestCompleteCallbackFcn fcn, void *usr=0, const DtSimulationAddress &addr=DtSimSendToAll)
 Request the value of a back-end setting from the DtVrfSimSettingsManager.
virtual void setSpotReportsGloballyEnabled (bool enabled)
 Sets the global state of spot reports - all entities set to use the global setting (which is the default) will obey this value.
virtual void setEngagementReportsGloballyEnabled (bool enabled)
 Sets the global state of engagement reports - all entities set to use the global setting (which is the default) will obey this value.
virtual void setPeriodicSnapshotSettings (bool enabled, double period, int numberOfSnapshotsToKeep)
 Sets whether or not period snapshots is enabled and the time period (simulation time in seconds) for marking a checkpoint.
virtual void setDRThresholds (double translation, double rotation)
 Set the dead reckoning settings to be used by any entities that allow gui overrides.
virtual void setCommModelSettings (bool useExternalComms)
 Set the comm model settings to be used by entities that have radios.
virtual void setRoadDrivingSettings (bool driveOnLeft)
 Set which side of the road entities drive on.
virtual void setAutomaticAggregationDisaggregationEnabled (bool enabled)
 Sets whether or not automatic aggregation/disaggregation should be enabled.
virtual void setPublishAggregateFormationRoutes (bool yesNo)
 Sets whether or not aggregate formation-following routes should be published.
virtual bool loadScenario (const DtFilename &filename, DtBackendRemappingFcn fcn=0, void *usrRemapping=0, DtLoadBalancingFcn=0, void *usrBalancing=0, const std::vector< DtString > &simulationModelSetFiles=std::vector< DtString >(), ComponentAttachmentRule compAttachRule=DtVrfRemoteController::AttachNone, DtString *errorString=0)
 I. Scenario management.
virtual bool loadScenario (const DtScenario &scenario, DtBackendRemappingFcn fcn=0, void *usrRemapping=0, DtLoadBalancingFcn=0, void *usrBalancing=0, const std::vector< DtString > &simulationModelSetFiles=std::vector< DtString >(), DtString *errorString=0)
 Loads scenario specified by DtScenario.
virtual bool importScenario (const DtScenario &, const DtSimulationAddress &addr, DtString *errorString=0)
 Imports a scenario into the specified back-end.
virtual bool importScenario (const DtFilename &, const DtSimulationAddress &addr, DtString *errorString=0)
virtual bool saveSimulationObjectGroup (const DtFilename &smsDirectory, const DtString &groupName, const DtString &groupDescription, int creationFlags, const DtSimulationAddress &addr, const std::map< DtString, DtString > &additionalInformation=std::map< DtString, DtString >(), DtString *saveError=0)
 Saves a simulation object group with the contents of the items specified on the given back-end (DtSimSendToAll is not valid).
virtual void rollbackToSnapshot (double simTime)
 Rolls back to the current snapshot given the scenario time to roll back to.
virtual bool importScenarioDescriptionFile (const DtFilename &file, DtSimulationAddress, const DtString &format, const std::map< std::string, std::string > &importData)
 Imports the specified scenario description file into the given back-end.
virtual bool exportScenarioDescriptionFile (const DtFilename &file, DtSimulationAddress, const DtString &format, const std::map< std::string, std::string > &importData)
 Exports the specified scenario description file by requesting the specified back-end to create the export file and send that file back to this front-end.
virtual DtString guiTerrainDatabaseFilename () const
 Accessor for front end Gui terrain database.
virtual void setGuiTerrainDatabaseFilename (DtString db)
virtual const DtRwKeyValueListscenarioData () const
 Set the scenario data used to save with the scenario.
virtual void setScenarioData (const DtRwKeyValueList &)
virtual bool newScenario (const DtFilename &dbname, const DtFilename &guidbname, const DtFilename &opdname=DtFilename::nullFilename(), const DtFilename &physicalWorldName=DtFilename::nullFilename(), const DtScenario *baseScenario=0, time_t startTimeOfDay=12 *3600, DtString *errorString=0)
 Create a new scenario.
virtual bool newScenario (const DtFilename &dbname, const DtFilename &guidbname, const std::vector< DtString > &simulationModelSetFiles, const DtScenario *baseScenario=0, time_t startTimeOfDay=12 *3600, DtString *errorString=0)
 Create a new scenario from a simulation model set files.
virtual bool sendLoadScenarioMessage (const DtScenario &scenario, const DtSimulationAddress &addr=DtSimSendToAll, bool import=false) const
 Send a load scenario message based on the information inside scenario.
virtual DtIfLoadScenariocreateLoadScenarioMessage () const
 Called by sendLoadScenarioMessage to create an instance of DtIfLoadScenario.
virtual void addBackendLoadedCallback (DtBackendCallbackFcn fcn, void *usr)
 Register callback to be invoked whenever a backend has finished loading a scenario.
virtual void removeBackendLoadedCallback (DtBackendCallbackFcn fcn, void *usr)
virtual void addScenarioLoadedCallback (DtScenarioCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely loaded.
virtual void removeScenarioLoadedCallback (DtScenarioCallbackFcn fcn, void *usr)
virtual bool isSavingScenario () const
 Returns true if a scenario is being saved.
virtual bool saveScenario (const DtFilename &saveName, DtPreserveMappingsFcn fcn=0, void *userData=0, DtString *error=0, double simTime=-1)
 Save a scenario.
virtual bool saveScenarioCheckpoint (const DtFilename &filename, double simTime)
 Saves a scenario checkpoint.
virtual void takeSnapshot (DtSimulationAddress addr=DtSimSendToAll)
 Takes a snapshot of the scenario in the various back-ends in memory.
virtual void takeBaseSnapshot ()
 Takes a snapshot and makes it the base snapshot that can be rewound to by the rewind to scenario start button.
virtual void sendSaveScenarioMessage (const DtSimulationAddress &addr=DtSimSendToAll, double simTime=-1, const DtFilename &saveScenarioFilename="") const
 Send a save scenario message Use this function to send a save message to a single backend.
virtual void addBackendSavedCallback (DtBackendSaveCallbackFcn fcn, void *usr)
 Register a callback to be invoked whenever a backend has finished saving a scenario.
virtual void removeBackendSavedCallback (DtBackendSaveCallbackFcn fcn, void *usr)
virtual void addScenarioSavedCallback (DtScenarioCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely saved.
virtual void removeScenarioSavedCallback (DtScenarioCallbackFcn fcn, void *usr)
virtual void addScenarioExportedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely exported.
virtual void removeScenarioExportedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
virtual void addCheckpointSavedCallback (DtCheckpointSavedCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely checkpointed.
virtual void removeCheckpointSavedCallback (DtCheckpointSavedCallbackFcn fcn, void *usr)
virtual void addScenarioSavedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
 Register callback to be invoked when a scenario is completely saved.
virtual void removeScenarioSavedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
virtual void closeScenario (const DtSimulationAddress &addr=DtSimSendToAll, const DtFilename &databaseToOpen="", bool forceCloseAll=false)
 Close the current scenario.
virtual void setScenarioExtrasFilename (const DtFilename &extras)
virtual const DtFilename & scenarioExtrasFilename () const
virtual void saveParameterDb (const DtFilename &filename)
 Save currently loaded parameter database in backend to file.
virtual void deleteObject (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 II. VR-Forces Object management.
virtual void createWaypoint (const DtVector &geocentricPosition, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll) const
 A. Control objects.
virtual void createWaypoint (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtVector &geocentricPosition, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll)
 Create a new waypoint.
virtual void modifyWaypoint (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtVector *geocentricPosition=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 Modify the given waypoint.
virtual void createRoute (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll) const
 Routes.
virtual void createRoute (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll)
 Create a new route.
virtual void modifyRoute (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *vertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 Modify the given route.
virtual void createPhaseLine (const DtVector &dbPoint1, const DtVector &dbPoint2, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll) const
 Phase Lines.
virtual void createPhaseLine (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtVector &dbPoint1, const DtVector &dbPoint2, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll)
 Create a new phase line.
virtual void modifyPhaseLine (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtVector *newDbPoint1=0, DtVector *newDbPoint2=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 Modify the given phase line.
virtual void createControlArea (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll) const
 Control Areas.
virtual void createControlArea (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll)
 Create a new control area.
virtual void modifyControlArea (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *newVertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 modify the given control area
virtual void createObstacle (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll) const
 Obstacle.
virtual void createObstacle (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll)
 Create a new obstacle.
virtual void modifyObstacle (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *newVertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 modify the given obstacle
virtual void createDisaggregationArea (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll) const
 Disaggregation Area.
virtual void createDisaggregationArea (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll)
 Create a new disaggregation area (triggers automatic disaggregation whenever an aggregate enters the area).
virtual void modifyDisaggregationArea (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *newVertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 Modify given disaggregation area.
virtual void createOverlayObject (const DtEntityType &type, const DtList &vertices, const DtForceType &force, const DtString &name, const DtString &label, int color, const DtString &parentName, bool projection, bool closedFigure, const DtAppearance &appearance=DtAppearance::nullAppearance(), const DtString &attachTo=DtString(), char *userData=0, int dataSize=0, const std::map< std::string, std::string > &extendedData=std::map< std::string, std::string >(), const std::map< int, DtString > &extendedLabels=std::map< int, DtString >(), DtOverlayCreatedCallbackFcn fcn=0, const DtSimulationAddress &addr=DtSimSendToAll, unsigned int rId=0, std::list< DtAdminContent * > *initialAdminContent=0, std::list< DtSimInterfaceContent * > *initialInterfaceContent=0)
 Overlay objects.
virtual void createIndirectArtillery (const DtVrfIndirectArtilleryObjectModify *params, const DtSimulationAddress &addr)
virtual void createObject (const DtEntityType &type, DtForceType force, DtList *vertices, const DtString &name, const DtSimulationAddress &addr)
 B. Entity and Aggregate management.
virtual void createEntity (const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, bool groundClamp=true) const
 Create a new entity.
virtual void createEntity (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, bool groundClamp=true)
 Create a new entity.
virtual void createAggregate (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, const DtString &uniqueName, const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, DtAggregateState initialAggregateState=DtDisaggregated)
virtual void createAggregate (const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, DtList *entityNames=0, const DtSimulationAddress &addr=DtSimSendToAll, DtAggregateState initialAggregateState=DtDisaggregated, unsigned int requestId=0) const
 Create an aggregate.
virtual void createAggregate (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtEntityType &type, const DtVector &geocentricPosition, DtForceType force, DtReal heading, DtList *entityNames=0, const DtSimulationAddress &addr=DtSimSendToAll, DtAggregateState initialAggregateState=DtDisaggregated)
 Create an aggregate.
virtual void addToOrganization (const DtUUID &objectId, const DtUUID &newSuperiorId, const DtSimulationAddress &addr=DtSimSendToAll)
 Adds the specified object to as a subordinate to the specified superior.
virtual void addToForceLevelOrganization (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll)
 Adds the specified object as a subordinate to the Force Level aggregate corresponding to the objects force type.
virtual void removeFromOrganization (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll)
 Removes the specified object from whatever aggregate it is a part of and leaves it with no superior.
virtual void sendVrfObjectCreateMsg (const DtSimulationAddress &addr, unsigned int requestId, const DtString &name, const DtObjectType &type, const DtList &vertices, const DtString &label, const DtAppearance &appearance, DtForceType force, bool projection, bool closedFigure, DtReal heading, bool createSubObjects, bool clampToGroundFlag=true, const DtString &initialFormation=DtString::nullString(), DtAggregateState initialAggregateState=DtDisaggregated, const DtString &userData=DtString::nullString(), const std::map< std::string, std::string > &extendedData=std::map< std::string, std::string >(), const std::map< int, DtString > &extendedLabels=std::map< int, DtString >(), std::list< DtAdminContent * > *initialAdminContent=0, std::list< DtSimInterfaceContent * > *initialInterfaceContent=0, const DtString &overlayParent="") const
 C. Advanced.
virtual void sendVrfObjectModifyMsg (const DtSimulationAddress &addr, const DtUUID &uuid, DtString *name=0, DtList *vertices=0, DtForceType *force=0, DtReal *heading=0, DtString *label=0, DtAppearance *appearance=0, DtString *overlayParent=0, DtString *userData=0) const
 This function can be used to modify vrf objects that cannot be created using the more specific methods above.
virtual void setPhysicalLineWidth (const DtSimulationAddress &addr, const DtUUID &entityId, double w)
 Sets the physical line width of the object, if the object can use it.
virtual void setPhysicalLineHeight (const DtSimulationAddress &addr, const DtUUID &entityId, double h)
 Sets the physical line height of the object, if the object can use it.
virtual void setCeiling (const DtSimulationAddress &addr, const DtUUID &entityId, double c)
 Sets the ceiling of the object, if the object can use it.
virtual void sendVrfOverlayObjectModifyMsg (const DtSimulationAddress &addr, const DtUUID &uuid, int color, const DtString &parentName, const DtUUID &attachTo, bool keepExistingAttachment=true, char *userData=0, int len=0) const
 This function is only used to modify information that is specific to an overlay object (waypoint, route, overlay objects, etc.)
virtual void sendVrfIndirectArtilleryObjectModifyMsg (const DtSimulationAddress &addr, const DtUUID &uuid, const DtVrfIndirectArtilleryObjectModify *mod) const
virtual void moveAlongRoute (const DtUUID &entityName, const DtUUID &routeName, const DtSimulationAddress &addr=DtSimSendToAll) const
 III. Plans and tasks.
virtual void moveToWaypoint (const DtUUID &entityName, const DtUUID &waypoint, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'move to waypoint' task to the entity/aggregate specified by 'name'.
virtual void moveToLocation (const DtUUID &entityName, const DtVector &destinationLocation, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'move to location' task to the entity/aggregate specified by 'name'.
virtual void patrolBetweenWaypoints (const DtUUID &uuid, const DtUUID &waypoint1, const DtUUID &waypoint2, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'patrol waypoints' task to the entity/aggregate specified by 'name'.
virtual void patrolAlongRoute (const DtUUID &uuid, const DtUUID &route, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'patrol route' task to the entity/aggregate specified by 'name'.
virtual void followEntity (const DtUUID &uuid, const DtUUID &leader, const DtVector &offset, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'follow' task to the given entity/aggregate.
virtual void wait (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'wait' task to the entity/aggregate specified by 'name'.
virtual void waitDuration (const DtUUID &uuid, DtTime duration, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'wait X seconds' task to the entity/aggregate specified by 'name'.
virtual void waitElapsed (const DtUUID &uuid, DtTime elapsed, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a 'wait until the simulation time has increased by X' task to the entity/aggregate specified by 'name'.
virtual void sendTaskMsg (const DtUUID &recipient, DtSimTask *task, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a general task message to the entity/aggregate specified by 'recipient' argument, which is the name of the entity/aggregate to receive the task message.
virtual void abandonPlan (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Command the entity/aggregate corresponding to the given entity to abandon its plan.
virtual void skipTask (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Command the entity/aggregate to skip the current task.
virtual void restartPlan (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Command the entity/aggregate corresponding to the given entity to abandon its plan.
virtual void assignPlanByName (const DtUUID &uuid, const DtPlan &plan, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=NULL, DtString *retsStmt=NULL) const
 Assign a plan to the echelon ID held by the entity/aggregate corresponding to the given entity name.
virtual void assignMultiplePlanByName (const std::vector< DtUUID > &entities, const DtPlan &plan, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=NULL, DtString *retsStmt=NULL) const
 Same as assignPlanByName, except send DtMultiplePlanSet message.
virtual void requestPlan (const DtUUID &uuid, bool addStmtCallback=true, const DtSimulationAddress &addr=DtSimSendToAll) const
 Send a message to all VRF sim engines requesting plan updates messages for the specified entity name.
virtual void subscribePlan (const DtUUID &uuid, DtPlanCallbackFcn fn, void *usr, const DtSimulationAddress &addr=DtSimSendToAll)
 Requests plan messages from the sim engine for a particular entity, and registers a callback to receive the messages.
virtual void requestMultiplePlan (const std::vector< DtUUID > &entities, DtMultiplePlanRequestCallbackFcn fcn, void *usr, const DtSimulationAddress &addr=DtSimSendToAll)
 Send a message to the specified backend (or all) to check to see if all locally simulated entities contain the same plan.
virtual void requestMultiplePlan (const std::vector< DtUUID > &entities, const DtSimulationAddress &addr=DtSimSendToAll)
virtual void unsubscribePlan (const DtUUID &uuid, DtPlanCallbackFcn fn, void *usr)
 Removes a plan message callback function registered with subscribePlan.
virtual void unsubscribeAllPlans ()
 Unregisters all plan message callbacks.
virtual void addPlanStatementCallback (const DtUUID &uuid, DtPlanStatementCallbackFcn callback, void *usrData)
 Register callback for an entity's or aggregate's current statement.
virtual void removePlanStatementCallback (const DtUUID &uuid, DtPlanStatementCallbackFcn callback, void *usrData)
 Unregister callback for an entity's or aggregate's current statement.
virtual void removeAllPlanStatementCallbacks ()
 Unregister current statement callbacks for all entities/aggregates and global plans.
virtual void addPlanCompleteCallback (const DtUUID &uuid, DtPlanCompleteCallbackFcn callback, void *usrData)
 Register callback for an entity's or aggregate's plan completion.
virtual void removePlanCompleteCallback (const DtUUID &uuid, DtPlanCompleteCallbackFcn callback, void *usrData)
 Unregister callback for an entity's or aggregate's plan completion.
virtual void removeAllPlanCompleteCallbacks ()
 Unregister plan completion callbacks for all entities/aggregates and global plans.
virtual void requestGlobalPlansList (const DtSimulationAddress &addr)
 -—— Global Plans
virtual void assignGlobalPlan (const DtString &name, const DtPlan &plan, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=NULL, DtString *retsStmt=NULL) const
 Assigns a global plan of the specified name to the sim engine specified in addr.
virtual void deleteGlobalPlan (const DtUUID &name, const DtSimulationAddress &addr=DtSimSendToAll) const
 Deletes any global plan matching the specified name.
virtual void launchGlobalPlan (const DtUUID &, const DtSimulationAddress &addr) const
 Launches the global plan. If already launched then this will have no effect.
virtual
DtVrfObjectMessageExecutive
objectMessageExecutive ()
 Communication From Entities Register callbacks with this message executive to receive messages sent from entities and objects to the GUI.
virtual void sendMessageToObject (DtVrfObjectMessage *objectMessage, const DtSimulationAddress &addr=DtSimSendToAll) const
 Sends the specified message to the entity identified in the message receiver field.
virtual void loadedScenario (const DtSimulationAddress &addr, unsigned int requestId)
 Invoked when a backend notifies us that it has received and loaded the given scenario information.
virtual void processSaveMessages ()
 Called before the scenario is saved, this routine will go through the saved save interface messages and store scenario data common to all servers.
virtual DtTime scenarioSimTimeForSave ()
 This routine will return the simulation time based upon the saved messages that should be saved in the scenario file.
virtual void setTerrainDatabaseFilename (DtScenario *scen)
 This routine will set the terrain database filename into the supplied scenario.
virtual void setParameterDatabaseFilename (DtScenario *scen)
 This routine will set the parameter database filename into the supplied scenario.
virtual void setPhysicalWorldFilename (DtScenario *scen)
 This routine will set the physical world filename into the supplied scenario.
virtual void setTimeMultiplier (DtScenario *scen)
 This routine will set the time multiplier into the supplied scenario.
virtual void setAutoReorganize (DtScenario *scen)
 This routine will set the auto reorganize flag into the supplied scenario.
virtual void setRandomNumberSeed (DtScenario *scen)
 This routine will set the random number seed into the supplied scenario.
virtual void setFrameRateMode (DtScenario *scen)
 This routine will set the frame rate mode into the supplied scenario.
virtual void setFrameDeltaTime (DtScenario *scen)
 This routine will set the frame delta time into the supplied scenario.
virtual void setExerciseStartTime (DtScenario *scen)
 This routine will set the exercise start time into the supplied scenario.
virtual void setExerciseStartDateAndTime (DtScenario *scen)
 This routine will set the exercise start day and time into the supplied scenario.
virtual bool save (DtString &sError)
 Write out scenario files.
virtual void createSimulationObjectGroup (const DtSimulationAddress &, const DtString &simulationObjectGroup, const DtVector &createPosition, double offsetRotation, int createFlags, DtForceType force)
 Creates the contents of the simulation object group at the given geocentric position and flags.
virtual void save (const DtSimulationAddress &addr, DtIfSaveComplete *s)
 Invoked when a backend notifies us that it has saved and sent its scenario information.
virtual void exported (const DtSimulationAddress &addr, DtIfExportComplete *s)
 Invoked when a backend notifies us that it has exported and sent its scenario information.
virtual void completeExport ()
 Called when everything is available to complete the export process.
virtual void savedScenario (const DtSimulationAddress &addr, DtSaveResult result, unsigned int requestId, bool isCheckpointSave=false, double checkpointSimTime=-1)
 Invoked when a backend notifies us that it has saved and sent its scenario information.
virtual void doPendingSaveWork ()
 Perform periodic processing that's needed for saving a scenario.
virtual void doPendingExportWork ()
 Perform periodic processing that's needed for exporting a scenario.
virtual void doPendingLoadWork ()
 Perform periodic processing that's needed for loading a scenario.
virtual void objectCreated (unsigned int requestId, const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid)
 Invoked when an object we've requested has been created.
virtual unsigned int generateRequestId () const
 Generate a request id.
virtual void receivedPlan (const DtUUID &uuid, bool isGlobal, const std::vector< DtSimStatement * > &statements)
 Invoked when we receive a plan (usually it will be in response to a requestPlan() command)
virtual void receivedPlanStmt (const DtUUID &uuid, bool isGlobal, DtPlanStatus planStatus)
 Invoked when we receive a current statement message.
virtual void embarkObject (const DtSimulationAddress &addr, const DtUUID &entity, const DtUUID &ontoEntity, bool loadOverride=false, const DtVector &loadOverridePosition=DtVector::zero())
 These routines will send interface messages to tell the back-end to embark or disembark the specified objects.
virtual void disembarkObject (const DtSimulationAddress &addr, const DtUUID &entity)
virtual void disembarkAllObjects (const DtSimulationAddress &addr, const DtUUID &entity)
virtual void requestTasksAndSetsFor (const DtSimulationAddress &addr, const DtUUID &entityName)
 Requests the tasks and sets that are available for this object, using the DtIfCapableTaskAndSetQuery.
virtual void requestTasksAndSetsFor (const std::vector< DtUUID > &names)
 Requests the tasks and sets that are available for the list of named objects.
virtual void requestDIGuyAppearancesAndAnimations (const DtSimulationAddress &addr, const DtUUID &entityName)
 Requests the DI-Guy Appearances and animations available for the DI-Guy character associated with this entity.
virtual void requestDIGuyAppearancesAndAnimations (const std::vector< DtUUID > &names)
 Requests the DI-Guy Appearances and animations available for the DI-Guy character associated with these entities.
virtual
DtDefaultVrfObjectMessageFactory
vrfObjectMsgFactory ()
 IV. Factories.
virtual DtDefaultCondExprFactorycondExprFactory ()
virtual DtDefaultStatementFactorystmtFactory ()
virtual DtDefaultSimReportFactoryreportFactory ()
virtual DtDefaultSimTaskFactorytaskFactory ()
virtual
DtDefaultSetDataRequestFactory
setDataFactory ()
virtual
DtDefaultSimCommandFactory
simCommandFactory ()
virtual
DtDefaultAdminContentFactory
adminContentFactory ()
virtual void setRotationThreshold (DtReal thresh)
 IV. Misc.
virtual void setTranslationThreshold (DtReal thresh)
 Set translation threshold (in meters) for all back-ends.
virtual void setAggDimensionThreshold (DtReal thresh)
 Set the aggregate dimension threshold for all back-ends.
virtual void setHostInetAddr (DtInetAddr)
 Internet address setting.
virtual DtInetAddr hostInetAddr () const
virtual void querySpatialSubdivisionConfiguration (const DtSimulationAddress &backendAddress, DtSpatialSubdivisionType spatialSubdivisionType, DtServerRequestResponseCallbackFcn fcn=0, void *usr=0)
 Request spatial subdivision configuration of a given type, from a given back-end.
virtual void setSpatialSubdivsionConfiguration (const DtSimulationAddress &backendAddress, DtSpatialSubdivisionType spatialSubdivisionType, const int spatialSubdivisionXResolution, const int spatialSubdivisionYResolution, const int spatialSubdivisionZResolution)
 Set spatial subdivision configuration for given back-end.
virtual void requestIndirectArtilleryInformation (const DtUUID &)
 Request indirect artillery information by environmental name.
virtual void requestResources (const DtUUID &uuid=DtString::nullString(), const std::list< DtString > *list=0, DtServerRequestResponseCallbackFcn fcn=0, void *usr=0)
 Sends a request the server to send back a PDU which contains the resource values for the specified object and resource values.
virtual void setObjectNotifyLevel (const DtUUID &objectName, DtNotifyLevelType notifyLevel, const DtSimulationAddress &addr=DtSimSendToAll)
 Sends a request to the sim engine to change the notification level of the specified object.
virtual void logObjectConsoleToFile (const DtUUID &objectName, const DtFilename filename)
 Starts the sim engine logging this object console to the specified file.
virtual void stopLoggingObjectConsoleToFile (const DtUUID &objectName)
 Stops any sim engine which is currently writing a log file for this object.
virtual void requestResourceNames (const std::vector< DtUUID > &list, DtServerRequestResponseCallbackFcn fcn=0, void *usr=0)
 Sends a request to the server to return a list of resource names associated with the entities supplied.
virtual DtRadioMessageListenerradioMessageListener ()
 Returns a pointer to the radio message listener.
DtRemoteEnvironmentControllerremoteEnvironmentController ()
 Weather.
virtual void initializeGlobalEnvironment (const DtSimulationAddress &environmentSimBackend=DtSimSendToAll)
 Starts the environment simulation on one of the available simulation engines.
DtRemoteEnvironmentControllercreateRemoteEnvironmentController ()
 Instantiates a new DtRemoteEnvironmentController, override to install a subclass.
virtual void requestJoystickInformation (const DtUUID &, DtJoystickControlResponseFcn, void *, const DtSimulationAddress &addr=DtSimSendToAll)
 Joystick.
virtual void takeControlOf (const DtUUID &, const std::set< DtString > &functionGroups, const DtSimulationAddress &addr=DtSimSendToAll)
 Takes control of the given entity for the supplied function group(s) for the purposes of joystick control.
virtual void releaseControlOf (const DtUUID &, const std::set< DtString > &functionGroups=std::set< DtString >(), const DtSimulationAddress &addr=DtSimSendToAll)
 Releases control of the given entity for the given function groups.
virtual void sendJoystickControl (const DtUUID &, const DtString &functionGroup, const DtString &function, double value, bool repeat=false, const DtSimulationAddress &addr=DtSimSendToAll)
 Sends a joystick control message to the given entity for the given function group and function using the supplied value.
virtual void processReceivedMultiPlan (DtIfMultiplePlanResponse *msg)
 Invokes callback for request id.
virtual void processOverlayObjectCreated (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, DtVrfOverlayObjectModify *modifications)
virtual void processIndirectArtilleryObjectCreated (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, DtVrfIndirectArtilleryObjectModify *modifications)
virtual void processResourcesProcessedCb (const DtIfServerRequestResponse &rsp)
 Process this message if the request id is one we generated.
virtual void processSpatialSubdivisionConfigurationCb (const DtIfServerRequestResponse &rsp)
 Process this message if the request id is one we generated.
virtual void processCommentInteraction (DtCommentInteraction *inter)
 Processes an incoming comment interaction.
virtual
DtVrfConfigurationFileComposer
composer ()
 Returns current composer.
virtual bool newScenario (const DtFilename &dbname, const DtFilename &guidbname, const DtFilename &opdname, const DtFilename &physicalWorldName, const std::vector< DtString > &simulationModelSetFiles, const DtScenario *baseScenario=0, time_t startTimeOfDay=12 *3600, DtString *errorString=0)
 Called internally from new scenario methods.
virtual void init (DtExerciseConn *exConn, DtReflectedEnvironmentProcessList *rel=NULL, DtReflectedEntityList *reel=NULL, DtReflectedAggregateList *ral=NULL, const DtString &uuidMarkingForNonVrForces="entity-identifier")
 Initialization.
virtual void init (DtVrfMessageInterface *msgIf, DtReflectedEnvironmentProcessList *rel=NULL, DtReflectedEntityList *reel=NULL, DtReflectedAggregateList *ral=NULL, const DtString &uuidMarkingForNonVrForces="entity-identifier")
 Initialization.
virtual void reinitialize (DtReflectedEnvironmentProcessList *rel=NULL, DtReflectedEntityList *reel=NULL, DtReflectedAggregateList *ral=NULL)
 If already initialized, reinitialize with new reflected lists.
virtual void run (bool useStartStopInteraction=false, const DtSimulationAddress &addr=DtSimSendToAll) const
 Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.
virtual void pause (bool useStartStopInteraction=false, const DtSimulationAddress &addr=DtSimSendToAll) const
 Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.
virtual void rewind () const
 Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.
virtual void exit () const
 Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.
virtual void step () const
 Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.
virtual void setTimeMultiplier (double multiplier) const
 Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.
virtual void setOpdSaveName (const DtFilename &f)
 Get/Set the Object Parameters Database filename to be written to the scenario file during a save.
virtual const DtFilename & opdSaveName () const
 Get/Set the Object Parameters Database filename to be written to the scenario file during a save.
virtual void setMaxWaitSaveTime (DtTime t)
 Set the maximum amount of time to wait for backends to respond to a 'save' message.
virtual DtTime maxWaitSaveTime () const
 Set the maximum amount of time to wait for backends to respond to a 'save' message.
virtual void setMaxWaitLoadTime (DtTime t)
 Set the maximum amount of time to wait for backends to respond to a 'load' message.
virtual DtTime maxWaitLoadTime () const
 Set the maximum amount of time to wait for backends to respond to a 'load' message.
virtual void setOverlayFilename (const DtFilename &overlay)
 If there is a local overlay file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & overlayFilename () const
 If there is a local overlay file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual void setHostilityFilename (const DtFilename &hostilty)
 If there is a local hostility file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & hostilityFilename () const
 If there is a local hostility file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual void setSelectionGroupsFilename (const DtFilename &sel)
 If there is a local selection groups file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & selectionGroupsFilename () const
 If there is a local selection groups file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual void setSymbolMapFilename (const DtFilename &overlay)
 If there is a local symbol map that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & symbolMapFilename () const
 If there is a local symbol map that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual void setCreateMenuFilename (const DtFilename &overlay)
 If there is a local create menu that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual const DtFilename & createMenuFilename () const
 If there is a local create menu that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.
virtual void setLabel (const DtUUID &uuid, const DtString &label, const DtSimulationAddress &addr=DtSimSendToAll) const
 Modify an existing entity or aggregate.
virtual void setOverlayParent (const DtUUID &uuid, const DtString &label, const DtSimulationAddress &addr=DtSimSendToAll) const
 Sets the overlay parent of this object. Calls down to sendVrfModifyMessage.
virtual void setAltitude (const DtUUID &uuid, double altitude, bool aboveGroundLevel=false, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set altitude (in meters)
virtual void setLocation (const DtUUID &uuid, DtVector coord, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set location (geocentric coordinates)
virtual void setAppearance (const DtUUID &uuid, int appearance, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set appearance of entity.
virtual void setCapabilities (const DtUUID &uuid, int capabilities, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set capabilities of entity.
virtual void setHeading (const DtUUID &uuid, double degrees, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set heading (in degrees)
virtual void setForce (const DtUUID &uuid, DtForceType force, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set force.
virtual void requestSpotReports (const DtUUID &uuid, bool onOff, const DtSimulationAddress &addr=DtSimSendToAll) const
 Spot reports Requests that spot reports for the specified entity be sent or turned off.
virtual void requestEngagementReports (const DtUUID &uuid, bool onOff, const DtSimulationAddress &addr=DtSimSendToAll) const
 Engagement reports Requests that engagement reports for the specified entity be sent or turned off.
virtual void setResource (const DtUUID &uuid, const char *resourceType, double value, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set resource.
virtual void setRulesOfEngagement (const DtUUID &uuid, const char *rulesType, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set rules of engagement.
virtual void setSectorOfResponsibility (const DtUUID &uuid, double center, double size, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set sector of responsibility (center and size are in degrees)
virtual void setSpeed (const DtUUID &uuid, double speed, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set ordered speed (in meters per second)
virtual void setCurrentSpeed (const DtUUID &uuid, double speed, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set current speed (in meters per second)
virtual void setTarget (const DtUUID &uuid, const DtUUID &target, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set target.
virtual void setSuperior (const DtUUID &uuid, const DtUUID &superior, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set superior.
virtual void setTaskedBySuperior (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set tasked by superior.
virtual void setConcealed (const DtUUID &uuid, bool yes, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set concealed.
virtual void setEmitter (const DtUUID &uuid, int emitterId, bool on, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set emitter.
virtual void setIff (const DtUUID &uuid, bool mode1on, int mode1code, bool mode2on, int mode2code, bool mode3on, int mode3code, bool mode4on, int mode4code, DtIffAtcNavaidsAltParm4 altParm4, bool modeCon, bool useAltModeC, bool modeSon, bool emergency, bool flash, bool sti, bool modeSTcasI, int pin, bool mode5LevelSelection, unsigned int messageFormatsPresent, unsigned int nationalOrigin, unsigned int navigationSource, unsigned int figureOfMerit, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set iff.
virtual void restore (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Restore to start state.
virtual void setDestroyed (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 Sets the damage state of the specified entity/aggregate to destroyed.
virtual void setLifeformWeaponState (const DtUUID &uuid, DtWeaponState weapon, const DtSimulationAddress &addr) const
 Set lifeform weapon If 'name' does not correspond to a lifeform entity, making this call has no effect.
virtual void setLifeformPosture (const DtUUID &uuid, DtLifeformState posture, const DtSimulationAddress &addr) const
 Set lifeform posture If 'name' does not correspond to a lifeform entity, making this call has no effect.
virtual void setAggregateFormation (const DtUUID &leader, const DtString &formationName, const DtSimulationAddress &addr=DtSimSendToAll) const
 Set an aggregate formation.
virtual void reorganizeAggregate (const DtUUID &leader, const DtSimulationAddress &addr=DtSimSendToAll) const
 Reorganize the aggregate.
virtual void disaggregateEntity (const DtUUID &entity, const DtSimulationAddress &addr=DtSimSendToAll) const
 Disaggregate the entity, resulting in its DtAggregateState to become DtDisaggregated, and simulation of its subordinates as distinct entities.
virtual void aggregateEntity (const DtUUID &entity, const DtSimulationAddress &addr=DtSimSendToAll) const
 Aggregate the entity, resulting in its DtAggregateState to become DtAggregated, with subordinates not simulated as distinct entities.
virtual void sendSetDataMsg (const DtUUID &recipient, DtSetDataRequest *msg, const DtSimulationAddress &addr) const
 General set data message.
virtual void addObjectConsoleMessageCallback (DtObjectConsoleMessageCallbackFcn fcn, void *usr=0)
 Object Console Information.
virtual void removeObjectConsoleMessageCallback (DtObjectConsoleMessageCallbackFcn fcn, void *usr=0)
 Object Console Information.
virtual void addBackendConsoleMessageCallback (DtBackendConsoleMessageCallbackFcn fcn, void *usr=0)
 Back-end Console Information.
virtual void removeBackendConsoleMessageCallback (DtBackendConsoleMessageCallbackFcn fcn, void *usr=0)
 Back-end Console Information.

Static Public Member Functions

static void doPendingSaveWorkCb (void *usr)
 Invoked periodically while waiting for a save command to complete.
static void doPendingExportWorkCb (void *usr)
 Invoked periodically while waiting for a export command to complete.
static void doPendingLoadWorkCb (void *usr)
 Invoked periodically while waiting for a load command to complete.
static void savedScenarioCb (DtSimMessage *msg, void *usr)
 Invoked when a backend notifies us that it has saved and send it scenario information.
static void exportScenarioCb (DtSimMessage *msg, void *usr)
 Invoked when a backend notifies us that it has exported and send it scenario information.
static void loadedScenarioCb (DtSimMessage *msg, void *usr)
 Invoked when a backend notifies us that it has received and loaded the given scenario information.
static void receiveFileCb (const DtFilename &filename, void *usr)
 Invoked when a file has been received from our dedicated TCP socket.
static void receivedMultiPlanCb (DtSimMessage *msg, void *usr)
 Invoked when we receive a multiple plan response.
static void objectCreatedCb (DtSimMessage *msg, void *usr)
 Invoked when an object we've requested has been created.
static void receivedPlanCb (DtSimMessage *msg, void *usr)
 Invoked when we receive a plan as a result of a plan request.
static void receivedPlanStmtCb (DtSimMessage *msg, void *usr)
 Invoked when we receive a plan statement message.
static void overlayObjectCreatedCallback (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, void *usr)
 Invoked when an overlay object is created.
static void indirectArtilleryObjectCreatedCallback (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, void *usr)
 Invoked when an indirect artillery object is created.
static void resourcesProcessedCb (DtSimMessage *msg, void *usr)
 Invoked when a resource request is called via requestResources.
static void spatialSubdivisionConfigurationCb (DtSimMessage *msg, void *usr)
 Invoked when a query spatial subdivision configuration request is made via querySpatialSubdivisionConfiguration().
static void commentInteractionCallback (DtCommentInteraction *inter, void *usr)
 Invoked when a comment interaction is received from the network.

Protected Types

typedef std::list< PlanCbInfoDtPlanCallbackListType
typedef std::list< StmtCbInfoDtStatementCallbackListType
typedef std::list
< PlanCompleteCbInfo
DtPlanCompleteCallbaclListType
typedef std::list< std::pair
< DtObjectConsoleMessageCallbackFcn,
void * > > 
DtObjectConsoleMessageCallbackListType
 hashed by request id
typedef std::list< std::pair
< DtBackendConsoleMessageCallbackFcn,
void * > > 
DtBackendConsoleMessageCallbackListType
typedef std::map< DtString,
std::pair
< DtJoystickControlResponseFcn,
void * > > 
JoystickResponseCallbackInfo
 Joystick callback information.

Protected Member Functions

virtual void processJoystickControlResponse (DtSimMessage *msg)
virtual void onInit ()
 Initializes myTempDirectory, host inet address, myListener, myRadioMessageListener, myRemoteEnvironmentController.
virtual void resetStateData ()
virtual void emptyLists ()
virtual void sendAggregateAsMsg (const DtSimulationAddress &addr, unsigned int requestId, const DtObjectType &objectType, DtForceType force, const DtVector &position, DtReal heading, DtList *entityNames, DtAggregateState initialAggregateState) const
 Fills out and sends an aggregate-as message.
virtual
DtVrfConfigurationFileComposer
createComposer ()
 Initializes the myComposer variable.
virtual DtUUIDNetworkManagercreateUUIDNetworkManager () const
 Creates a new UUID network manager.
virtual void sendQuerySpatialSubdivisionConfigurationRequest (const DtSimulationAddress &backendAddress, DtSpatialSubdivisionType spatialSubdivisionType, DtServerRequestResponseCallbackFcn fcn, void *usr)
 Sends DtIfQuerySpatialSubdivisionConfiguration request for given spatial subdivision type.
virtual bool arbitrarySimAddress (DtSimulationAddress &address) const
 Chooses an arbitrary simulation address from the current set of registered backends.
virtual bool addStatementsAndSendPlan (const DtPlan &plan, DtIfPlan &planMsg, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=0, DtString *retsStmt=0) const
 Adds the statements from plan to planMsg, and sends planMsg to the specified address.
virtual void processVrfObjectMessage (const DtVrfObjectMessage *objectMsg)
 If the message is addressed to the front end, passes it to the objectMessageExecutive for processing by any registered callbacks.
virtual void processGlobalEnvironmentCreated (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid)

Static Protected Member Functions

static void joystickControlResponse (DtSimMessage *msg, void *usr)
 Invoked when a resource request is called via requestResources.
static void deliverRadioMessageCallback (DtSimMessage *msg, void *usr)
 Callback registered with the message interface for vrfObjectMessages.
static void vrfObjectMessageCallback (const DtVrfObjectMessage *objMsg, void *usr)
static void globalEnvironmentCreatedCb (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, void *usr)
 Called when global weather object is created, will then set time of day.

Protected Attributes

DtExerciseConn * myExConn
DtReflectedEnvironmentProcessListmyReflectedEnvironmentProcessList
bool myCreatedReflectedEnvironmentProcessList
DtVrfMessageInterfacemyMsgIf
DtVrfBackendListenermyListener
DtCompressedFileTransportermyTransporter
DtList myReceivedFiles
DtList myReceivedSaves
DtU32 myCurrentRequestId
DtTime myLastCommandTime
DtTime myMaxWaitLoadTime
DtTime myMaxWaitSaveTime
DtList myBeList
DtList myScenLoadedCbs
DtList myBeLoadedCbs
DtList myScenSavedOldCbs
DtList myScenSavedCbs
 list of any deprecated old-style save callbacks that have been registered
DtList myScenExportedCbs
 list of any preferred new-style save callbacks that have been registered
DtList myScenSavedCheckpointCbs
 list of any preferred new-style save callbacks that have been registered
DtList myBeSavedCbs
 list of any preferred new-style save callbacks that have been registered
DtPlanCallbackListType myPlanCbs
DtStatementCallbackListType myStmtCbs
DtPlanCompleteCallbaclListType myPlanCompleteCbs
DtHashlist myObjectCbs
DtObjectConsoleMessageCallbackListType myObjectConsoleMessageCallbackList
DtBackendConsoleMessageCallbackListType myBackendConsoleMessageCallbackList
bool myCreatedMsgIf
DtFilename mySaveName
double mySimTimeForCheckpointSave
DtFilename myOverlayFilename
DtFilename mySelectionGroupsFilename
DtFilename mySymbolMapFilename
DtFilename myCreateMenuFilename
DtFilename myOpdName
DtFilename myHostilityFilename
DtFilename myScenarioExtrasFilename
DtScenariomySaveScen
DtScenariomyLoadScen
DtVrfConfigurationFileComposermyComposer
bool myRemapped
 true if a DtBackendRemappingFcn was called on the current scenario
bool myPreserveMappings
 false if a DtPreserveMappingsFcn returned false when saving a scenario
bool myDidRemap
 true if at some point during the save of this scenario the user decided to remap the objects to the new back end.
bool myNeedsGlobalEnvironment
 Set to true if needs to create global environment on first load of simulation.
DtDefaultVrfObjectMessageFactory myVrfObjectMsgFact
 These are needed for message callbacks to work.
DtDefaultCondExprFactory myCondExprFact
DtDefaultStatementFactory myStmtFact
DtDefaultSimReportFactory myReportFact
DtDefaultSimTaskFactory myTaskFact
DtDefaultSetDataRequestFactory mySetDataFact
DtDefaultSimCommandFactory mySimCommandFact
DtDefaultAdminContentFactory myAdminContentFact
DtString myGuiTerrainDatabaseFilename
 This member variable will contain the front end database (if different from backe-end).
DtRwKeyValueList myScenarioData
 Extra data used to be saved with the scenarip.
DtFilename myTempDirectory
 Location for temporary files generated by the configuration composer and file transporter.
DtInetAddr myInetAddr
 This is the Internet address to send saved files back to from the server.
unsigned int myRequestIdCounter
 Incremented by generateRequestId() to assign new request id's.
DtVrfObjectMessageExecutive myObjectMessageExecutive
 Used to processes VrfObjectMessages addressed to the Front End.
DtRadioMessageListenermyRadioMessageListener
 Used to spy on radio messages sent between VRF Entities.
DtRemoteEnvironmentControllermyRemoteEnvironmentController
 Used to monitor and change the weather state.
int myStartTimeOfDay
 Only set for a new scenario.
int myScenarioExportRequestId
 Pending export request id.
DtFilename myExportFile
 When received, the file to save the export file to.
bool myReceivedExportFile
 Set to true once export file has been received.
bool myAwaitingExportComplete
 Set to know we've received the export complete message but not the file yet.
bool myUseDayNightModel
DtDefaultSimulationModelSetValidatorManager mySimulationModelSetValidator
DtUUIDNetworkManagermyUUIDNetworkManager
 Class that will manage and work with VR-Forces UUIDs and make sure the mapping is kept up to date.
JoystickResponseCallbackInfo myJoystickResponseCallbackInfo

Detailed Description

The main class for the remote control interface to VR-Forces.

Instantiating this class allows the sending and received on control messages over the network to control one or more vrfSim executables on the same exercise. It allows for all control, such as loading/saving scenarios, creating/deleting entities and objects, tasking entities, and so fourth. This includes encoding and decoding of all the VR-Forces specific messages that are send though data interactions/PDUs over the network. The DtVrfRemoteController does not instantiate reflected lists or maintain lists of the objects in the simulation. This should be done directly with the VR-Link API and the DtExerciseConnection. This class requires an active DtExerciseConnection in order to operate.

Examples

Member Typedef Documentation

hashed by request id

Joystick callback information.

Member Enumeration Documentation

Enumerator:
AttachNone 
AttachFirst 
AttachEven 

Constructor & Destructor Documentation

DtVrfRemoteController::DtVrfRemoteController ( int  receivePort = 9000)

Constructor.

Parameters
receivePortPort used by the file transporter to receive order of battle and plan files from a back-end in response to a save scenario request. If the port requested cannot be opened, the next open port will be used.
virtual DtVrfRemoteController::~DtVrfRemoteController ( )
virtual

Member Function Documentation

virtual void DtVrfRemoteController::init ( DtExerciseConn *  exConn,
DtReflectedEnvironmentProcessList rel = NULL,
DtReflectedEntityList reel = NULL,
DtReflectedAggregateList ral = NULL,
const DtString uuidMarkingForNonVrForces = "entity-identifier" 
)
virtual

Initialization.

One of these init functions must be called before any other member functions are called. If the version with the DtExerciseConn argument is called, the DtVrfRemoteController will create its own DtVrfMessageInterface. If a DtReflectedEnvironmentProcessList is not passed in, the DtVrfRemoteController will create one. If the application which is instantiating the DtVrfRemoteController already has a DtVrfMessageInterface or DtReflectedEnvironmentProcessList, they should be passed into init in order to avoid the overhead of maintaining extra instances of those classes.

Supply all reflected lists if you are creating them in order to populate the DtUUIDNetworkManager to map VR-Forces UUIDs to marking text. If you do not supply thos items the UUID Network Manager will create them and manage them itself Also supply the scheme of the UUID to use for non published VRF objects. The default is entity-identifier. Options are: entity-identifier global-identifier marking-text

virtual void DtVrfRemoteController::init ( DtVrfMessageInterface msgIf,
DtReflectedEnvironmentProcessList rel = NULL,
DtReflectedEntityList reel = NULL,
DtReflectedAggregateList ral = NULL,
const DtString uuidMarkingForNonVrForces = "entity-identifier" 
)
virtual

Initialization.

One of these init functions must be called before any other member functions are called. If the version with the DtExerciseConn argument is called, the DtVrfRemoteController will create its own DtVrfMessageInterface. If a DtReflectedEnvironmentProcessList is not passed in, the DtVrfRemoteController will create one. If the application which is instantiating the DtVrfRemoteController already has a DtVrfMessageInterface or DtReflectedEnvironmentProcessList, they should be passed into init in order to avoid the overhead of maintaining extra instances of those classes.

Supply all reflected lists if you are creating them in order to populate the DtUUIDNetworkManager to map VR-Forces UUIDs to marking text. If you do not supply thos items the UUID Network Manager will create them and manage them itself Also supply the scheme of the UUID to use for non published VRF objects. The default is entity-identifier. Options are: entity-identifier global-identifier marking-text

virtual void DtVrfRemoteController::reinitialize ( DtReflectedEnvironmentProcessList rel = NULL,
DtReflectedEntityList reel = NULL,
DtReflectedAggregateList ral = NULL 
)
virtual

If already initialized, reinitialize with new reflected lists.

Call this routine only if the reflected lists are deleted and recreated. If they are already owned by the remote controller then this will replace that ownership

virtual DtVrfMessageInterface* DtVrfRemoteController::vrfMessageInterface ( ) const
virtual

Accessor for the message interface.

virtual DtUUIDNetworkManager* DtVrfRemoteController::uuidNetworkManager ( ) const
virtual

Accessor for the uuidNetworkManager.

virtual const DtSimulationAddress& DtVrfRemoteController::simulationAddress ( ) const
virtual

Get our simulation address.

virtual int DtVrfRemoteController::sessionId ( ) const
virtual
virtual double DtVrfRemoteController::simTime ( const DtSimulationAddress *  a = NULL) const
virtual

Returns the simulation time of the specified back-end.

If no back-end specified, returns the first back-ends simulation time

virtual const DtList& DtVrfRemoteController::backends ( ) const
virtual

Get a list of known back-end simulation addresses.

virtual const DtList& DtVrfRemoteController::pendingBackends ( ) const
virtual

Get a list of back-ends which are still processing the current load or save operation (if any).

virtual DtVrfBackendListener* DtVrfRemoteController::backendListener ( ) const
virtual

Get the back-end listener.

virtual void DtVrfRemoteController::addBackendDiscoveryCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual

Register backend discovery callbacks.

virtual void DtVrfRemoteController::removeBackendDiscoveryCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addBackendRemovalCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual

Register backend removal callbacks.

virtual void DtVrfRemoteController::removeBackendRemovalCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual
virtual int DtVrfRemoteController::backendsControlState ( ) const
virtual

Get remote backends' control state Returns DtUnknownControlType if no remote backends exist.

Returns either DtPauseControlType or DtRunControlType otherwise.

virtual int DtVrfRemoteController::numberBackendsLoaded ( ) const
virtual

Returns the number of backends loaded with a scenario.

virtual bool DtVrfRemoteController::allBackendsReady ( ) const
virtual

Returns true if all the backends have a scenario loaded and they are ready to simulate.

virtual bool DtVrfRemoteController::backendLoaded ( const DtSimulationAddress &  addr) const
virtual

Returns true if the backend specified is loaded.

virtual void DtVrfRemoteController::modifyBackEndSetting ( const DtSettingsObject setting,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Modify the value of a back-end settings object.

The object's name must exist on the back-end(s) receiving the modification message.

virtual void DtVrfRemoteController::requestBackEndSetting ( std::string  name,
DtBackEndSettingRequestCompleteCallbackFcn  fcn,
void *  usr = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Request the value of a back-end setting from the DtVrfSimSettingsManager.

By default the request is sent to all available back-ends, but it can also be targeted to individual back-ends. The request is added to myBackendSettingRequestMap and when responses for all the requested back-ends have been received the given DtBackEndSettingRequestCompleteCallbackFcn will be called with the given user data to indicate that the back-ends can now be interrogated for the setting. NOTE: This function is a pass through to DtVrfBackendListener::requestBackEndSetting

virtual void DtVrfRemoteController::setSpotReportsGloballyEnabled ( bool  enabled)
virtual

Sets the global state of spot reports - all entities set to use the global setting (which is the default) will obey this value.

virtual void DtVrfRemoteController::setEngagementReportsGloballyEnabled ( bool  enabled)
virtual

Sets the global state of engagement reports - all entities set to use the global setting (which is the default) will obey this value.

virtual void DtVrfRemoteController::setPeriodicSnapshotSettings ( bool  enabled,
double  period,
int  numberOfSnapshotsToKeep 
)
virtual

Sets whether or not period snapshots is enabled and the time period (simulation time in seconds) for marking a checkpoint.

Set period and/or numberOfSnapshotsToKeep to -1 to keep current value

virtual void DtVrfRemoteController::setDRThresholds ( double  translation,
double  rotation 
)
virtual

Set the dead reckoning settings to be used by any entities that allow gui overrides.

Note this does not set the aggregate dimension threshold.

virtual void DtVrfRemoteController::setCommModelSettings ( bool  useExternalComms)
virtual

Set the comm model settings to be used by entities that have radios.

virtual void DtVrfRemoteController::setRoadDrivingSettings ( bool  driveOnLeft)
virtual

Set which side of the road entities drive on.

virtual void DtVrfRemoteController::setAutomaticAggregationDisaggregationEnabled ( bool  enabled)
virtual

Sets whether or not automatic aggregation/disaggregation should be enabled.

Default is false.

virtual void DtVrfRemoteController::setPublishAggregateFormationRoutes ( bool  yesNo)
virtual

Sets whether or not aggregate formation-following routes should be published.

Turning off publishing of these routes can improve performance, if the aggregates are large (individual routes are generated for each member in an aggregate).

virtual bool DtVrfRemoteController::loadScenario ( const DtFilename &  filename,
DtBackendRemappingFcn  fcn = 0,
void *  usrRemapping = 0,
DtLoadBalancingFcn  = 0,
void *  usrBalancing = 0,
const std::vector< DtString > &  simulationModelSetFiles = std::vector< DtString >(),
ComponentAttachmentRule  compAttachRule = DtVrfRemoteController::AttachNone,
DtString errorString = 0 
)
virtual

I. Scenario management.

Loads scenario file specified by filename. Parses and transfers configuration files to the appro- private backends; Then tells backends to load the relevant files. NOTES: Calling this function replaces any previous call to loadScenario. Also, this function does not send a message if no backends are running in our session.

NOTE::

Before loading a scenario you must call closeScenario and wait for all backends to close before loading or creating a new scenario. This is so any scenario data that might exist in the backend is cleaned up. NOT calling closeScenario before a load or a new can leave the backend in an undefined state. This is especially important to do for distributed scenarios

If simulation model set files are not blank, then, if the scenario loaded does not have simulation model set files associated with load, sets them to the values in the vector

virtual bool DtVrfRemoteController::loadScenario ( const DtScenario scenario,
DtBackendRemappingFcn  fcn = 0,
void *  usrRemapping = 0,
DtLoadBalancingFcn  = 0,
void *  usrBalancing = 0,
const std::vector< DtString > &  simulationModelSetFiles = std::vector< DtString >(),
DtString errorString = 0 
)
virtual

Loads scenario specified by DtScenario.

Parses and transfers configuration files to the appro- private backends based on the info in scenario; Then tells backends to load the relevant files. NOTES: Calling this function replaces any previous call to loadScenario. Also, this function does not send a message if no backends are running in our session.

virtual bool DtVrfRemoteController::importScenario ( const DtScenario ,
const DtSimulationAddress &  addr,
DtString errorString = 0 
)
virtual

Imports a scenario into the specified back-end.

DtSimSendToAll is not acceptable. A scenario can only be imported onto a single backend

virtual bool DtVrfRemoteController::importScenario ( const DtFilename &  ,
const DtSimulationAddress &  addr,
DtString errorString = 0 
)
virtual
virtual bool DtVrfRemoteController::saveSimulationObjectGroup ( const DtFilename &  smsDirectory,
const DtString groupName,
const DtString groupDescription,
int  creationFlags,
const DtSimulationAddress &  addr,
const std::map< DtString, DtString > &  additionalInformation = std::map< DtStringDtString >(),
DtString saveError = 0 
)
virtual

Saves a simulation object group with the contents of the items specified on the given back-end (DtSimSendToAll is not valid).

Will save the results in the given simulation model set directory. Will return false if the address is DtSimSendToAll or already in the process of saving or creating a simulation object group. The information will be saved on the back-end that this is sent to.

virtual void DtVrfRemoteController::rollbackToSnapshot ( double  simTime)
virtual

Rolls back to the current snapshot given the scenario time to roll back to.

virtual bool DtVrfRemoteController::importScenarioDescriptionFile ( const DtFilename &  file,
DtSimulationAddress  ,
const DtString format,
const std::map< std::string, std::string > &  importData 
)
virtual

Imports the specified scenario description file into the given back-end.

If DtSimSendToAll is given as the back-end the routine will return false, as it also will if the scenario description file does not exist. This routine does not check to be sure if the msdl file is a valid file before sending over the tcp socket to the requested back-end. It will also send a udp message with the msdl file to import

virtual bool DtVrfRemoteController::exportScenarioDescriptionFile ( const DtFilename &  file,
DtSimulationAddress  ,
const DtString format,
const std::map< std::string, std::string > &  importData 
)
virtual

Exports the specified scenario description file by requesting the specified back-end to create the export file and send that file back to this front-end.

If DtSimulationAddress is DtSimSendToAll false will be returned from this method.

virtual DtString DtVrfRemoteController::guiTerrainDatabaseFilename ( ) const
virtual

Accessor for front end Gui terrain database.

If the myGuiTerrainDatabase is empty and there is a scenario loaded, returns the Gui terrain database of the loaded scenario

virtual void DtVrfRemoteController::setGuiTerrainDatabaseFilename ( DtString  db)
virtual
virtual const DtRwKeyValueList& DtVrfRemoteController::scenarioData ( ) const
virtual

Set the scenario data used to save with the scenario.

virtual void DtVrfRemoteController::setScenarioData ( const DtRwKeyValueList )
virtual
virtual bool DtVrfRemoteController::newScenario ( const DtFilename &  dbname,
const DtFilename &  guidbname,
const DtFilename &  opdname = DtFilename::nullFilename(),
const DtFilename &  physicalWorldName = DtFilename::nullFilename(),
const DtScenario baseScenario = 0,
time_t  startTimeOfDay = 12 *3600,
DtString errorString = 0 
)
virtual

Create a new scenario.

Note
Calling this function replaces any previous call to loadScenario. Also, this function does not send a message if no backends are running in our session.
virtual bool DtVrfRemoteController::newScenario ( const DtFilename &  dbname,
const DtFilename &  guidbname,
const std::vector< DtString > &  simulationModelSetFiles,
const DtScenario baseScenario = 0,
time_t  startTimeOfDay = 12 *3600,
DtString errorString = 0 
)
virtual

Create a new scenario from a simulation model set files.

virtual bool DtVrfRemoteController::sendLoadScenarioMessage ( const DtScenario scenario,
const DtSimulationAddress &  addr = DtSimSendToAll,
bool  import = false 
) const
virtual

Send a load scenario message based on the information inside scenario.

Assumes that backends already have the relevant files for loading. If the scenario does not contain an .oob or .pln file, calling this method creates a new scenario.

virtual DtIfLoadScenario* DtVrfRemoteController::createLoadScenarioMessage ( ) const
virtual

Called by sendLoadScenarioMessage to create an instance of DtIfLoadScenario.

The caller is responsible for deleting the returned pointer.

virtual void DtVrfRemoteController::addBackendLoadedCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked whenever a backend has finished loading a scenario.

virtual void DtVrfRemoteController::removeBackendLoadedCallback ( DtBackendCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addScenarioLoadedCallback ( DtScenarioCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely loaded.

virtual void DtVrfRemoteController::removeScenarioLoadedCallback ( DtScenarioCallbackFcn  fcn,
void *  usr 
)
virtual
virtual bool DtVrfRemoteController::isSavingScenario ( ) const
virtual

Returns true if a scenario is being saved.

virtual bool DtVrfRemoteController::saveScenario ( const DtFilename &  saveName,
DtPreserveMappingsFcn  fcn = 0,
void *  userData = 0,
DtString error = 0,
double  simTime = -1 
)
virtual

Save a scenario.

Note
Calling this function replaces any previous call to saveScenario. Also, this function does not send a message if no backends are running in our session. If the scenario was remapped during load by a DtBackendRemappingFcn, an optional DtPreserveMappingsFcn is called to determine if the original mappings should be preserved (default), or if the current mappings should be saved. To get notification when the save is complete, call addScenarioSavedCallback.

If simTime is >=0 will instead try and save a in memory scenario snapshot at that given sim time. See saveScenarioSnapshot for more information.

Returns
bool indicates if the save message was sent
Return values
truethe save message was successfully sent to the back-end
falseeither a file or directory was not writable or the DtPreserveMappingsFcn returned false.
virtual bool DtVrfRemoteController::saveScenarioCheckpoint ( const DtFilename &  filename,
double  simTime 
)
virtual

Saves a scenario checkpoint.

This call will send a message to all back-ends to save the in memory snapshot at the given simulation time. If a checkpoint at the given simulation time does not exist in any of the back-ends the checkpoint will still be saved to disk. This method will return false if a checkpoint (or a save) is currently in progress

virtual void DtVrfRemoteController::takeSnapshot ( DtSimulationAddress  addr = DtSimSendToAll)
virtual

Takes a snapshot of the scenario in the various back-ends in memory.

This will not return any saved scenario files to the front-end

virtual void DtVrfRemoteController::takeBaseSnapshot ( )
virtual

Takes a snapshot and makes it the base snapshot that can be rewound to by the rewind to scenario start button.

Sent to all back-ends. The old base snapshot simply becomes a snapshot

virtual void DtVrfRemoteController::sendSaveScenarioMessage ( const DtSimulationAddress &  addr = DtSimSendToAll,
double  simTime = -1,
const DtFilename &  saveScenarioFilename = "" 
) const
virtual

Send a save scenario message Use this function to send a save message to a single backend.

Will send a save message to save an in memory snapshot if simTime is >= 0 rather than a normal save message

virtual void DtVrfRemoteController::addBackendSavedCallback ( DtBackendSaveCallbackFcn  fcn,
void *  usr 
)
virtual

Register a callback to be invoked whenever a backend has finished saving a scenario.

virtual void DtVrfRemoteController::removeBackendSavedCallback ( DtBackendSaveCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addScenarioSavedCallback ( DtScenarioCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely saved.

Deprecated:
starting in VRF 3.12; this does not provide success or failure information about the save to the callback.
virtual void DtVrfRemoteController::removeScenarioSavedCallback ( DtScenarioCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addScenarioExportedCallback ( DtScenarioSavedCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely exported.

virtual void DtVrfRemoteController::removeScenarioExportedCallback ( DtScenarioSavedCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addCheckpointSavedCallback ( DtCheckpointSavedCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely checkpointed.

virtual void DtVrfRemoteController::removeCheckpointSavedCallback ( DtCheckpointSavedCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::addScenarioSavedCallback ( DtScenarioSavedCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario is completely saved.

This interface is preferred, since the callback interface it exposes allows the calling code to determine whether the save succeeded.

virtual void DtVrfRemoteController::removeScenarioSavedCallback ( DtScenarioSavedCallbackFcn  fcn,
void *  usr 
)
virtual
virtual void DtVrfRemoteController::closeScenario ( const DtSimulationAddress &  addr = DtSimSendToAll,
const DtFilename &  databaseToOpen = "",
bool  forceCloseAll = false 
)
virtual

Close the current scenario.

Hint that if the back-end has the current database opened keep it open. Normally, if the scenario is closed and there are snapshots and the database to open is the same database opened in the back-end the database will stay open. If you want to force a closing of everything in the case of snapshots being present, pass the forceCloseAll flag as true. If the database to open is supplied and the forceCloseAll flag is true, only the snapshots will be removed if the database to open is the same database that is currently opened

virtual void DtVrfRemoteController::run ( bool  useStartStopInteraction = false,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.

virtual void DtVrfRemoteController::pause ( bool  useStartStopInteraction = false,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.

virtual void DtVrfRemoteController::rewind ( ) const
virtual

Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.

virtual void DtVrfRemoteController::exit ( ) const
virtual

Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.

virtual void DtVrfRemoteController::step ( ) const
virtual

Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.

virtual void DtVrfRemoteController::setTimeMultiplier ( double  multiplier) const
virtual

Control the scenarioIf useStartStopInteraction is true (default) send DIS specific start/freeze message rather than VR-Forces specific.

virtual void DtVrfRemoteController::setOpdSaveName ( const DtFilename &  f)
virtual

Get/Set the Object Parameters Database filename to be written to the scenario file during a save.

Backends will load their own opd file if a scenario file does not specify one. This value is automatically set by a 'newScenario' or 'loadScenario' call. Users should only set the opd file name if they want to specify a file that is different from the one that was loaded during 'new' or 'load'.

virtual const DtFilename& DtVrfRemoteController::opdSaveName ( ) const
virtual

Get/Set the Object Parameters Database filename to be written to the scenario file during a save.

Backends will load their own opd file if a scenario file does not specify one. This value is automatically set by a 'newScenario' or 'loadScenario' call. Users should only set the opd file name if they want to specify a file that is different from the one that was loaded during 'new' or 'load'.

virtual void DtVrfRemoteController::setMaxWaitSaveTime ( DtTime  t)
virtual

Set the maximum amount of time to wait for backends to respond to a 'save' message.

The default timeout interval is 1 minute. t should be specified in seconds.

virtual DtTime DtVrfRemoteController::maxWaitSaveTime ( ) const
virtual

Set the maximum amount of time to wait for backends to respond to a 'save' message.

The default timeout interval is 1 minute. t should be specified in seconds.

virtual void DtVrfRemoteController::setMaxWaitLoadTime ( DtTime  t)
virtual

Set the maximum amount of time to wait for backends to respond to a 'load' message.

The default timeout interval is 1 minute. t should be specified in seconds.

virtual DtTime DtVrfRemoteController::maxWaitLoadTime ( ) const
virtual

Set the maximum amount of time to wait for backends to respond to a 'load' message.

The default timeout interval is 1 minute. t should be specified in seconds.

virtual void DtVrfRemoteController::setOverlayFilename ( const DtFilename &  overlay)
virtual

If there is a local overlay file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

virtual const DtFilename& DtVrfRemoteController::overlayFilename ( ) const
virtual

If there is a local overlay file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

virtual void DtVrfRemoteController::setHostilityFilename ( const DtFilename &  hostilty)
virtual

If there is a local hostility file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

virtual const DtFilename& DtVrfRemoteController::hostilityFilename ( ) const
virtual

If there is a local hostility file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

virtual void DtVrfRemoteController::setScenarioExtrasFilename ( const DtFilename &  extras)
virtual
virtual const DtFilename& DtVrfRemoteController::scenarioExtrasFilename ( ) const
virtual
virtual void DtVrfRemoteController::setSelectionGroupsFilename ( const DtFilename &  sel)
virtual

If there is a local selection groups file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

virtual const DtFilename& DtVrfRemoteController::selectionGroupsFilename ( ) const
virtual

If there is a local selection groups file that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

virtual void DtVrfRemoteController::setSymbolMapFilename ( const DtFilename &  overlay)
virtual

If there is a local symbol map that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

Blank means keep currently loaded file, the default

virtual const DtFilename& DtVrfRemoteController::symbolMapFilename ( ) const
virtual

If there is a local symbol map that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

Blank means keep currently loaded file, the default

virtual void DtVrfRemoteController::setCreateMenuFilename ( const DtFilename &  overlay)
virtual

If there is a local create menu that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

Blank means keep currently loaded file, the default

virtual const DtFilename& DtVrfRemoteController::createMenuFilename ( ) const
virtual

If there is a local create menu that will be loaded up the next time the scenario is opened, set this value here BEFORE calling to save out the scenario.

Blank means keep currently loaded file, the default

virtual void DtVrfRemoteController::saveParameterDb ( const DtFilename &  filename)
virtual

Save currently loaded parameter database in backend to file.

virtual void DtVrfRemoteController::deleteObject ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

II. VR-Forces Object management.

Delete VR-Force's object by name

virtual void DtVrfRemoteController::createWaypoint ( const DtVector geocentricPosition,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

A. Control objects.

Waypoints Create a new waypoint. Note that the name must be unique (if specified) and that the position needs to be in geocentric coordinates. This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createWaypoint ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtVector geocentricPosition,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Create a new waypoint.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyWaypoint ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtVector geocentricPosition = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Modify the given waypoint.

virtual void DtVrfRemoteController::createRoute ( const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Routes.

Create a new route. Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createRoute ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Create a new route.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyRoute ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtList *  vertices = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Modify the given route.

virtual void DtVrfRemoteController::createPhaseLine ( const DtVector dbPoint1,
const DtVector dbPoint2,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Phase Lines.

Create a new phase line. Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createPhaseLine ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtVector dbPoint1,
const DtVector dbPoint2,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Create a new phase line.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyPhaseLine ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtVector newDbPoint1 = 0,
DtVector newDbPoint2 = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Modify the given phase line.

virtual void DtVrfRemoteController::createControlArea ( const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Control Areas.

Create a new control area. Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. Also, the vertices should form a convex polygon! This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createControlArea ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Create a new control area.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyControlArea ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtList *  newVertices = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

modify the given control area

virtual void DtVrfRemoteController::createObstacle ( const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Obstacle.

Create a new obstacle. Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. Also, the vertices should form a convex polygon! This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createObstacle ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Create a new obstacle.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyObstacle ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtList *  newVertices = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

modify the given obstacle

virtual void DtVrfRemoteController::createDisaggregationArea ( const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Disaggregation Area.

Create a new disaggregation area (triggers automatic disaggregation whenever an aggregate enters the area). Note that the name must be unique (if specified) and that the vertices needs to be in geocentric coordinates. This function simply sends the info to the given address – it's up to users to do error checking before making this call!

virtual void DtVrfRemoteController::createDisaggregationArea ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtList &  vertices,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Create a new disaggregation area (triggers automatic disaggregation whenever an aggregate enters the area).

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::modifyDisaggregationArea ( const DtUUID uuid,
DtString uniqueName = 0,
DtString label = 0,
DtList *  newVertices = 0,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Modify given disaggregation area.

virtual void DtVrfRemoteController::createOverlayObject ( const DtEntityType &  type,
const DtList &  vertices,
const DtForceType &  force,
const DtString name,
const DtString label,
int  color,
const DtString parentName,
bool  projection,
bool  closedFigure,
const DtAppearance &  appearance = DtAppearance::nullAppearance(),
const DtString attachTo = DtString(),
char userData = 0,
int  dataSize = 0,
const std::map< std::string, std::string > &  extendedData = std::map< std::string, std::string >(),
const std::map< int, DtString > &  extendedLabels = std::map< int, DtString >(),
DtOverlayCreatedCallbackFcn  fcn = 0,
const DtSimulationAddress &  addr = DtSimSendToAll,
unsigned int  rId = 0,
std::list< DtAdminContent * > *  initialAdminContent = 0,
std::list< DtSimInterfaceContent * > *  initialInterfaceContent = 0 
)
virtual

Overlay objects.

Overlay objects are considered objects that both be used in a simulated environment (control objects as listed above) and objects that can be used to annotate a scenario as one might do with an overlay on an overhead projector.

Creating an overlay object is a two step process. The first step is to create the object, and the second is to apply modifications to that created object (color, parent). This call will do both. It will send the create message, wait for the object to be created, and then send the modify message for that object. If rId is non zero will use that generated id rather than a newly created one

virtual void DtVrfRemoteController::createIndirectArtillery ( const DtVrfIndirectArtilleryObjectModify params,
const DtSimulationAddress &  addr 
)
virtual
virtual void DtVrfRemoteController::createObject ( const DtEntityType &  type,
DtForceType  force,
DtList *  vertices,
const DtString name,
const DtSimulationAddress &  addr 
)
virtual

B. Entity and Aggregate management.

Very simple call that will create an object (entity or overlay) with a heading of 0 and the supplied points

virtual void DtVrfRemoteController::createEntity ( const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
bool  groundClamp = true 
) const
virtual

Create a new entity.

virtual void DtVrfRemoteController::createEntity ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
const DtString uniqueName = DtString::nullString(),
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
bool  groundClamp = true 
)
virtual

Create a new entity.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::createAggregate ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
const DtString uniqueName,
const DtString label = DtString::nullString(),
const DtSimulationAddress &  addr = DtSimSendToAll,
DtAggregateState  initialAggregateState = DtDisaggregated 
)
virtual
virtual void DtVrfRemoteController::createAggregate ( const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
DtList *  entityNames = 0,
const DtSimulationAddress &  addr = DtSimSendToAll,
DtAggregateState  initialAggregateState = DtDisaggregated,
unsigned int  requestId = 0 
) const
virtual

Create an aggregate.

virtual void DtVrfRemoteController::createAggregate ( DtVrfObjectCreatedCallbackFcn  fcn,
void *  usr,
const DtEntityType &  type,
const DtVector geocentricPosition,
DtForceType  force,
DtReal  heading,
DtList *  entityNames = 0,
const DtSimulationAddress &  addr = DtSimSendToAll,
DtAggregateState  initialAggregateState = DtDisaggregated 
)
virtual

Create an aggregate.

This version of create allows users to register a callback function that will be invoked once the object has been created.

virtual void DtVrfRemoteController::addToOrganization ( const DtUUID objectId,
const DtUUID newSuperiorId,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Adds the specified object to as a subordinate to the specified superior.

Object will be detached from any superior it currently belongs to first.

virtual void DtVrfRemoteController::addToForceLevelOrganization ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Adds the specified object as a subordinate to the Force Level aggregate corresponding to the objects force type.

It will be detached from any superior it currently belongs to first.

virtual void DtVrfRemoteController::removeFromOrganization ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Removes the specified object from whatever aggregate it is a part of and leaves it with no superior.

virtual void DtVrfRemoteController::setLabel ( const DtUUID uuid,
const DtString label,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Modify an existing entity or aggregate.

NOTE: If any of the following set commands are specified for an aggregate leader, the change will apply to the entire aggregate.Set label

virtual void DtVrfRemoteController::setOverlayParent ( const DtUUID uuid,
const DtString label,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Sets the overlay parent of this object. Calls down to sendVrfModifyMessage.

virtual void DtVrfRemoteController::setAltitude ( const DtUUID uuid,
double  altitude,
bool  aboveGroundLevel = false,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set altitude (in meters)

virtual void DtVrfRemoteController::setLocation ( const DtUUID uuid,
DtVector  coord,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set location (geocentric coordinates)

virtual void DtVrfRemoteController::setAppearance ( const DtUUID uuid,
int  appearance,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set appearance of entity.

virtual void DtVrfRemoteController::setCapabilities ( const DtUUID uuid,
int  capabilities,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set capabilities of entity.

virtual void DtVrfRemoteController::setHeading ( const DtUUID uuid,
double  degrees,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set heading (in degrees)

virtual void DtVrfRemoteController::setForce ( const DtUUID uuid,
DtForceType  force,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set force.

virtual void DtVrfRemoteController::requestSpotReports ( const DtUUID uuid,
bool  onOff,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Spot reports Requests that spot reports for the specified entity be sent or turned off.

virtual void DtVrfRemoteController::requestEngagementReports ( const DtUUID uuid,
bool  onOff,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Engagement reports Requests that engagement reports for the specified entity be sent or turned off.

virtual void DtVrfRemoteController::setResource ( const DtUUID uuid,
const char resourceType,
double  value,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set resource.

virtual void DtVrfRemoteController::setRulesOfEngagement ( const DtUUID uuid,
const char rulesType,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set rules of engagement.

See setEngRules.h for a list of pre-defined rules of engagement types that can be passed as the rulesType.

virtual void DtVrfRemoteController::setSectorOfResponsibility ( const DtUUID uuid,
double  center,
double  size,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set sector of responsibility (center and size are in degrees)

virtual void DtVrfRemoteController::setSpeed ( const DtUUID uuid,
double  speed,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set ordered speed (in meters per second)

virtual void DtVrfRemoteController::setCurrentSpeed ( const DtUUID uuid,
double  speed,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set current speed (in meters per second)

virtual void DtVrfRemoteController::setTarget ( const DtUUID uuid,
const DtUUID target,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set target.

virtual void DtVrfRemoteController::setSuperior ( const DtUUID uuid,
const DtUUID superior,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set superior.

If superior is blank will set superior as force of the current item

virtual void DtVrfRemoteController::setTaskedBySuperior ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set tasked by superior.

virtual void DtVrfRemoteController::setConcealed ( const DtUUID uuid,
bool  yes,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set concealed.

virtual void DtVrfRemoteController::setEmitter ( const DtUUID uuid,
int  emitterId,
bool  on,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set emitter.

virtual void DtVrfRemoteController::setIff ( const DtUUID uuid,
bool  mode1on,
int  mode1code,
bool  mode2on,
int  mode2code,
bool  mode3on,
int  mode3code,
bool  mode4on,
int  mode4code,
DtIffAtcNavaidsAltParm4  altParm4,
bool  modeCon,
bool  useAltModeC,
bool  modeSon,
bool  emergency,
bool  flash,
bool  sti,
bool  modeSTcasI,
int  pin,
bool  mode5LevelSelection,
unsigned int  messageFormatsPresent,
unsigned int  nationalOrigin,
unsigned int  navigationSource,
unsigned int  figureOfMerit,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set iff.

virtual void DtVrfRemoteController::restore ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Restore to start state.

virtual void DtVrfRemoteController::setDestroyed ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Sets the damage state of the specified entity/aggregate to destroyed.

virtual void DtVrfRemoteController::setLifeformWeaponState ( const DtUUID uuid,
DtWeaponState  weapon,
const DtSimulationAddress &  addr 
) const
virtual

Set lifeform weapon If 'name' does not correspond to a lifeform entity, making this call has no effect.

virtual void DtVrfRemoteController::setLifeformPosture ( const DtUUID uuid,
DtLifeformState  posture,
const DtSimulationAddress &  addr 
) const
virtual

Set lifeform posture If 'name' does not correspond to a lifeform entity, making this call has no effect.

virtual void DtVrfRemoteController::setAggregateFormation ( const DtUUID leader,
const DtString formationName,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Set an aggregate formation.

If 'leader' is not an aggregate leader making this call will have no effect.

virtual void DtVrfRemoteController::reorganizeAggregate ( const DtUUID leader,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Reorganize the aggregate.

This function is only useful when automatic reorganization is not enabled. If 'leader' is not an aggregate leader making this call will have no effect.

virtual void DtVrfRemoteController::disaggregateEntity ( const DtUUID entity,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Disaggregate the entity, resulting in its DtAggregateState to become DtDisaggregated, and simulation of its subordinates as distinct entities.

virtual void DtVrfRemoteController::aggregateEntity ( const DtUUID entity,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Aggregate the entity, resulting in its DtAggregateState to become DtAggregated, with subordinates not simulated as distinct entities.

virtual void DtVrfRemoteController::sendSetDataMsg ( const DtUUID recipient,
DtSetDataRequest msg,
const DtSimulationAddress &  addr 
) const
virtual

General set data message.

The recipient is the name of the object to receive the set message.

virtual void DtVrfRemoteController::sendVrfObjectCreateMsg ( const DtSimulationAddress &  addr,
unsigned int  requestId,
const DtString name,
const DtObjectType type,
const DtList &  vertices,
const DtString label,
const DtAppearance &  appearance,
DtForceType  force,
bool  projection,
bool  closedFigure,
DtReal  heading,
bool  createSubObjects,
bool  clampToGroundFlag = true,
const DtString initialFormation = DtString::nullString(),
DtAggregateState  initialAggregateState = DtDisaggregated,
const DtString userData = DtString::nullString(),
const std::map< std::string, std::string > &  extendedData = std::map< std::string, std::string >(),
const std::map< int, DtString > &  extendedLabels = std::map< int, DtString >(),
std::list< DtAdminContent * > *  initialAdminContent = 0,
std::list< DtSimInterfaceContent * > *  initialInterfaceContent = 0,
const DtString overlayParent = "" 
) const
virtual

C. Advanced.

This function can be used to create vrf objects that cannot be created using the more specific methods above. In general, users should not need to call this.

virtual void DtVrfRemoteController::sendVrfObjectModifyMsg ( const DtSimulationAddress &  addr,
const DtUUID uuid,
DtString name = 0,
DtList *  vertices = 0,
DtForceType *  force = 0,
DtReal *  heading = 0,
DtString label = 0,
DtAppearance *  appearance = 0,
DtString overlayParent = 0,
DtString userData = 0 
) const
virtual

This function can be used to modify vrf objects that cannot be created using the more specific methods above.

Please note that calling this function for entity values will not work in most cases. Instead, the SetData family of methods should be used. In general, users should not need to call this.

virtual void DtVrfRemoteController::setPhysicalLineWidth ( const DtSimulationAddress &  addr,
const DtUUID entityId,
double  w 
)
virtual

Sets the physical line width of the object, if the object can use it.

virtual void DtVrfRemoteController::setPhysicalLineHeight ( const DtSimulationAddress &  addr,
const DtUUID entityId,
double  h 
)
virtual

Sets the physical line height of the object, if the object can use it.

virtual void DtVrfRemoteController::setCeiling ( const DtSimulationAddress &  addr,
const DtUUID entityId,
double  c 
)
virtual

Sets the ceiling of the object, if the object can use it.

virtual void DtVrfRemoteController::sendVrfOverlayObjectModifyMsg ( const DtSimulationAddress &  addr,
const DtUUID uuid,
int  color,
const DtString parentName,
const DtUUID attachTo,
bool  keepExistingAttachment = true,
char userData = 0,
int  len = 0 
) const
virtual

This function is only used to modify information that is specific to an overlay object (waypoint, route, overlay objects, etc.)

virtual void DtVrfRemoteController::sendVrfIndirectArtilleryObjectModifyMsg ( const DtSimulationAddress &  addr,
const DtUUID uuid,
const DtVrfIndirectArtilleryObjectModify mod 
) const
virtual
virtual void DtVrfRemoteController::moveAlongRoute ( const DtUUID entityName,
const DtUUID routeName,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

III. Plans and tasks.

Send a 'move along route' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::moveToWaypoint ( const DtUUID entityName,
const DtUUID waypoint,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'move to waypoint' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::moveToLocation ( const DtUUID entityName,
const DtVector destinationLocation,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'move to location' task to the entity/aggregate specified by 'name'.

destinationLocation is specified in geocentric coordinates.

virtual void DtVrfRemoteController::patrolBetweenWaypoints ( const DtUUID uuid,
const DtUUID waypoint1,
const DtUUID waypoint2,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'patrol waypoints' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::patrolAlongRoute ( const DtUUID uuid,
const DtUUID route,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'patrol route' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::followEntity ( const DtUUID uuid,
const DtUUID leader,
const DtVector offset,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'follow' task to the given entity/aggregate.

The vrf object specified by 'name' will follow 'leader' at the given offset . The offset should be specified in meters. To specify an offset in front, to the right, or below, use a negative sign for x, y, or z.

virtual void DtVrfRemoteController::wait ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'wait' task to the entity/aggregate specified by 'name'.

virtual void DtVrfRemoteController::waitDuration ( const DtUUID uuid,
DtTime  duration,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'wait X seconds' task to the entity/aggregate specified by 'name'.

Parameters
addrseconds
virtual void DtVrfRemoteController::waitElapsed ( const DtUUID uuid,
DtTime  elapsed,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a 'wait until the simulation time has increased by X' task to the entity/aggregate specified by 'name'.

Parameters
addrsimulation time
virtual void DtVrfRemoteController::sendTaskMsg ( const DtUUID recipient,
DtSimTask task,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a general task message to the entity/aggregate specified by 'recipient' argument, which is the name of the entity/aggregate to receive the task message.

virtual void DtVrfRemoteController::abandonPlan ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Command the entity/aggregate corresponding to the given entity to abandon its plan.

virtual void DtVrfRemoteController::skipTask ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Command the entity/aggregate to skip the current task.

virtual void DtVrfRemoteController::restartPlan ( const DtUUID uuid,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Command the entity/aggregate corresponding to the given entity to abandon its plan.

virtual void DtVrfRemoteController::assignPlanByName ( const DtUUID uuid,
const DtPlan plan,
const DtSimulationAddress &  addr = DtSimSendToAll,
int *  retiStatus = NULL,
DtString retsStmt = NULL 
) const
virtual

Assign a plan to the echelon ID held by the entity/aggregate corresponding to the given entity name.

If plan fails, will contains failure code. Currently if status is 0, it is because an individual statement was too long to add retsStmt will contain the string representation of the statement that to encode.

Note
As of VR-Forces 3.10, assigning plans by echelon ID is no longer supported. Assign all plans by name.
virtual void DtVrfRemoteController::assignMultiplePlanByName ( const std::vector< DtUUID > &  entities,
const DtPlan plan,
const DtSimulationAddress &  addr = DtSimSendToAll,
int *  retiStatus = NULL,
DtString retsStmt = NULL 
) const
virtual

Same as assignPlanByName, except send DtMultiplePlanSet message.

virtual void DtVrfRemoteController::requestPlan ( const DtUUID uuid,
bool  addStmtCallback = true,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Send a message to all VRF sim engines requesting plan updates messages for the specified entity name.

You must have a plan callback registered for this entity to receive the plan message from the sim engine.

virtual void DtVrfRemoteController::subscribePlan ( const DtUUID uuid,
DtPlanCallbackFcn  fn,
void *  usr,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Requests plan messages from the sim engine for a particular entity, and registers a callback to receive the messages.

The given callback will be invoked whenever a relevant plan message arrives.

virtual void DtVrfRemoteController::requestMultiplePlan ( const std::vector< DtUUID > &  entities,
DtMultiplePlanRequestCallbackFcn  fcn,
void *  usr,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Send a message to the specified backend (or all) to check to see if all locally simulated entities contain the same plan.

If they do, a response is sent back with the plan. If they do not, a response is sent back with a flag stating that the plans are not common (rather than an empty plan

virtual void DtVrfRemoteController::requestMultiplePlan ( const std::vector< DtUUID > &  entities,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual
virtual void DtVrfRemoteController::unsubscribePlan ( const DtUUID uuid,
DtPlanCallbackFcn  fn,
void *  usr 
)
virtual

Removes a plan message callback function registered with subscribePlan.

virtual void DtVrfRemoteController::unsubscribeAllPlans ( )
virtual

Unregisters all plan message callbacks.

Both entity/aggregate as well as global plan subscriptions are removed.

virtual void DtVrfRemoteController::addPlanStatementCallback ( const DtUUID uuid,
DtPlanStatementCallbackFcn  callback,
void *  usrData 
)
virtual

Register callback for an entity's or aggregate's current statement.

requestPlan() or subscribePlan() must be called for the same entity for the callback to be invoked.

virtual void DtVrfRemoteController::removePlanStatementCallback ( const DtUUID uuid,
DtPlanStatementCallbackFcn  callback,
void *  usrData 
)
virtual

Unregister callback for an entity's or aggregate's current statement.

virtual void DtVrfRemoteController::removeAllPlanStatementCallbacks ( )
virtual

Unregister current statement callbacks for all entities/aggregates and global plans.

virtual void DtVrfRemoteController::addPlanCompleteCallback ( const DtUUID uuid,
DtPlanCompleteCallbackFcn  callback,
void *  usrData 
)
virtual

Register callback for an entity's or aggregate's plan completion.

requestPlan() or subscribePlan() must be called for the same entity for the callback to be invoked.

virtual void DtVrfRemoteController::removePlanCompleteCallback ( const DtUUID uuid,
DtPlanCompleteCallbackFcn  callback,
void *  usrData 
)
virtual

Unregister callback for an entity's or aggregate's plan completion.

virtual void DtVrfRemoteController::removeAllPlanCompleteCallbacks ( )
virtual

Unregister plan completion callbacks for all entities/aggregates and global plans.

virtual void DtVrfRemoteController::requestGlobalPlansList ( const DtSimulationAddress &  addr)
virtual

-—— Global Plans

Requests the list of all global plans

virtual void DtVrfRemoteController::assignGlobalPlan ( const DtString name,
const DtPlan plan,
const DtSimulationAddress &  addr = DtSimSendToAll,
int *  retiStatus = NULL,
DtString retsStmt = NULL 
) const
virtual

Assigns a global plan of the specified name to the sim engine specified in addr.

If addr is DtSimSendToAll, the first sim engine is chosen. If plan fails, will contains failure code. Currently if status is 0, it is because an individual statement was too long to add retsStmt will contain the string representation of the statement that to encode.

Note
As of VR-Forces 3.10, assigning plans by echelon ID is no longer supported. Assign all plans by name.
virtual void DtVrfRemoteController::deleteGlobalPlan ( const DtUUID name,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Deletes any global plan matching the specified name.

virtual void DtVrfRemoteController::launchGlobalPlan ( const DtUUID ,
const DtSimulationAddress &  addr 
) const
virtual

Launches the global plan. If already launched then this will have no effect.

virtual DtVrfObjectMessageExecutive* DtVrfRemoteController::objectMessageExecutive ( )
virtual

Communication From Entities Register callbacks with this message executive to receive messages sent from entities and objects to the GUI.

Only messages addressed to DtVrfMessageFrontEndAddress will be received in these callbacks.

virtual void DtVrfRemoteController::sendMessageToObject ( DtVrfObjectMessage objectMessage,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

Sends the specified message to the entity identified in the message receiver field.

The transmitter field of the message is filled in by this class to be DtVrfObjectMessageFrontEndAddress. Normally, the default simulation address of DtSimSendToAll should be used.

virtual void DtVrfRemoteController::loadedScenario ( const DtSimulationAddress &  addr,
unsigned int  requestId 
)
virtual

Invoked when a backend notifies us that it has received and loaded the given scenario information.

Users should never need to call this function.

virtual void DtVrfRemoteController::processSaveMessages ( )
virtual

Called before the scenario is saved, this routine will go through the saved save interface messages and store scenario data common to all servers.

virtual DtTime DtVrfRemoteController::scenarioSimTimeForSave ( )
virtual

This routine will return the simulation time based upon the saved messages that should be saved in the scenario file.

virtual void DtVrfRemoteController::setTerrainDatabaseFilename ( DtScenario scen)
virtual

This routine will set the terrain database filename into the supplied scenario.

It will warn if any of the backends do not match the first backend's terrain database filename

virtual void DtVrfRemoteController::setParameterDatabaseFilename ( DtScenario scen)
virtual

This routine will set the parameter database filename into the supplied scenario.

It will warn if any of the backends do not match the first backend's parameter database filename

virtual void DtVrfRemoteController::setPhysicalWorldFilename ( DtScenario scen)
virtual

This routine will set the physical world filename into the supplied scenario.

It will warn if any of the backends do not match the first backend's parameter database filename

virtual void DtVrfRemoteController::setTimeMultiplier ( DtScenario scen)
virtual

This routine will set the time multiplier into the supplied scenario.

It will warn if any of the backends do not match the first backend's time multiplier

virtual void DtVrfRemoteController::setAutoReorganize ( DtScenario scen)
virtual

This routine will set the auto reorganize flag into the supplied scenario.

It will warn if any of the backends do not match the first backend's auto reorganize flag

virtual void DtVrfRemoteController::setRandomNumberSeed ( DtScenario scen)
virtual

This routine will set the random number seed into the supplied scenario.

It will warn if any of the backends do not match the first backend's random number seed

virtual void DtVrfRemoteController::setFrameRateMode ( DtScenario scen)
virtual

This routine will set the frame rate mode into the supplied scenario.

It will warn if any of the backends do not match the first backend's frame rate mode

virtual void DtVrfRemoteController::setFrameDeltaTime ( DtScenario scen)
virtual

This routine will set the frame delta time into the supplied scenario.

It will warn if any of the backends do not match the first backend's frame delta time

virtual void DtVrfRemoteController::setExerciseStartTime ( DtScenario scen)
virtual

This routine will set the exercise start time into the supplied scenario.

It will warn if any of the backends do not match the first backend's exercise start time

virtual void DtVrfRemoteController::setExerciseStartDateAndTime ( DtScenario scen)
virtual

This routine will set the exercise start day and time into the supplied scenario.

It will warn if any of the backends do not match the first backend's exercise start time

virtual bool DtVrfRemoteController::save ( DtString sError)
virtual

Write out scenario files.

This function will compose the saved backend data that we have received so far. Ideally, this is only invoked when all backends have responded to a save request. Users generally should never call this function. If there is an error saving, sError will contain an error condition

virtual void DtVrfRemoteController::createSimulationObjectGroup ( const DtSimulationAddress &  ,
const DtString simulationObjectGroup,
const DtVector createPosition,
double  offsetRotation,
int  createFlags,
DtForceType  force 
)
virtual

Creates the contents of the simulation object group at the given geocentric position and flags.

The simulation object group to create will need to be in the same directory as the files that will be referenced to create this simulation object group on the back-end where this group is to be created. If it does not exists the back-end will print an error to the console

virtual void DtVrfRemoteController::save ( const DtSimulationAddress &  addr,
DtIfSaveComplete s 
)
virtual

Invoked when a backend notifies us that it has saved and sent its scenario information.

The information in 's' is saved to be processed later. Users generally should never call this function.

virtual void DtVrfRemoteController::exported ( const DtSimulationAddress &  addr,
DtIfExportComplete s 
)
virtual

Invoked when a backend notifies us that it has exported and sent its scenario information.

Since only one backend is processing the export, file can be dealt with immediately

virtual void DtVrfRemoteController::completeExport ( )
virtual

Called when everything is available to complete the export process.

virtual void DtVrfRemoteController::savedScenario ( const DtSimulationAddress &  addr,
DtSaveResult  result,
unsigned int  requestId,
bool  isCheckpointSave = false,
double  checkpointSimTime = -1 
)
virtual

Invoked when a backend notifies us that it has saved and sent its scenario information.

Calls user callbacks. Users generally should never call this function.

virtual void DtVrfRemoteController::doPendingSaveWork ( )
virtual

Perform periodic processing that's needed for saving a scenario.

This function will get executed in a VR-Link post drain callback.

virtual void DtVrfRemoteController::doPendingExportWork ( )
virtual

Perform periodic processing that's needed for exporting a scenario.

This function will get executed in a VR-Link post drain callback.

virtual void DtVrfRemoteController::doPendingLoadWork ( )
virtual

Perform periodic processing that's needed for loading a scenario.

This function will get executed in a VR-Link post drain callback.

virtual void DtVrfRemoteController::objectCreated ( unsigned int  requestId,
const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid 
)
virtual

Invoked when an object we've requested has been created.

Calls any user registered callbacks

virtual unsigned int DtVrfRemoteController::generateRequestId ( ) const
virtual

Generate a request id.

virtual void DtVrfRemoteController::receivedPlan ( const DtUUID uuid,
bool  isGlobal,
const std::vector< DtSimStatement * > &  statements 
)
virtual

Invoked when we receive a plan (usually it will be in response to a requestPlan() command)

virtual void DtVrfRemoteController::receivedPlanStmt ( const DtUUID uuid,
bool  isGlobal,
DtPlanStatus  planStatus 
)
virtual

Invoked when we receive a current statement message.

This message also contains information about whether or not the plan has been completed. This method invokes either current statement callbacks or plan complete callbacks.

virtual void DtVrfRemoteController::embarkObject ( const DtSimulationAddress &  addr,
const DtUUID entity,
const DtUUID ontoEntity,
bool  loadOverride = false,
const DtVector loadOverridePosition = DtVector::zero() 
)
virtual

These routines will send interface messages to tell the back-end to embark or disembark the specified objects.

All information sent is by object name. If loadOverride is false, then the system will use to occupancy director to determine where to embark the entity, else it will use the offset (in body coordinates) supplied by the user

virtual void DtVrfRemoteController::disembarkObject ( const DtSimulationAddress &  addr,
const DtUUID entity 
)
virtual
virtual void DtVrfRemoteController::disembarkAllObjects ( const DtSimulationAddress &  addr,
const DtUUID entity 
)
virtual
virtual void DtVrfRemoteController::requestTasksAndSetsFor ( const DtSimulationAddress &  addr,
const DtUUID entityName 
)
virtual

Requests the tasks and sets that are available for this object, using the DtIfCapableTaskAndSetQuery.

The response to this message will be a DtIfCapableTaskAndSetResponse message

virtual void DtVrfRemoteController::requestTasksAndSetsFor ( const std::vector< DtUUID > &  names)
virtual

Requests the tasks and sets that are available for the list of named objects.

virtual void DtVrfRemoteController::requestDIGuyAppearancesAndAnimations ( const DtSimulationAddress &  addr,
const DtUUID entityName 
)
virtual

Requests the DI-Guy Appearances and animations available for the DI-Guy character associated with this entity.

virtual void DtVrfRemoteController::requestDIGuyAppearancesAndAnimations ( const std::vector< DtUUID > &  names)
virtual

Requests the DI-Guy Appearances and animations available for the DI-Guy character associated with these entities.

virtual DtDefaultVrfObjectMessageFactory* DtVrfRemoteController::vrfObjectMsgFactory ( )
virtual

IV. Factories.

Accessors for factories that create the various kinds of interface messages and interface message content objects.

virtual DtDefaultCondExprFactory* DtVrfRemoteController::condExprFactory ( )
virtual
virtual DtDefaultStatementFactory* DtVrfRemoteController::stmtFactory ( )
virtual
virtual DtDefaultSimReportFactory* DtVrfRemoteController::reportFactory ( )
virtual
virtual DtDefaultSimTaskFactory* DtVrfRemoteController::taskFactory ( )
virtual
virtual DtDefaultSetDataRequestFactory* DtVrfRemoteController::setDataFactory ( )
virtual
virtual DtDefaultSimCommandFactory* DtVrfRemoteController::simCommandFactory ( )
virtual
virtual DtDefaultAdminContentFactory* DtVrfRemoteController::adminContentFactory ( )
virtual
virtual void DtVrfRemoteController::setRotationThreshold ( DtReal  thresh)
virtual

IV. Misc.

Set rotation threshold (in radians) for all back-ends.

virtual void DtVrfRemoteController::setTranslationThreshold ( DtReal  thresh)
virtual

Set translation threshold (in meters) for all back-ends.

virtual void DtVrfRemoteController::setAggDimensionThreshold ( DtReal  thresh)
virtual

Set the aggregate dimension threshold for all back-ends.

Thresh is a number between 0 and 1, indicating the percentage change that an aggregate's dimensions can undergo before causing an update to be generated.

virtual void DtVrfRemoteController::setHostInetAddr ( DtInetAddr  )
virtual

Internet address setting.

virtual DtInetAddr DtVrfRemoteController::hostInetAddr ( ) const
virtual
virtual void DtVrfRemoteController::querySpatialSubdivisionConfiguration ( const DtSimulationAddress &  backendAddress,
DtSpatialSubdivisionType  spatialSubdivisionType,
DtServerRequestResponseCallbackFcn  fcn = 0,
void *  usr = 0 
)
virtual

Request spatial subdivision configuration of a given type, from a given back-end.

virtual void DtVrfRemoteController::setSpatialSubdivsionConfiguration ( const DtSimulationAddress &  backendAddress,
DtSpatialSubdivisionType  spatialSubdivisionType,
const int  spatialSubdivisionXResolution,
const int  spatialSubdivisionYResolution,
const int  spatialSubdivisionZResolution 
)
virtual

Set spatial subdivision configuration for given back-end.

virtual void DtVrfRemoteController::requestIndirectArtilleryInformation ( const DtUUID )
virtual

Request indirect artillery information by environmental name.

virtual void DtVrfRemoteController::requestResources ( const DtUUID uuid = DtString::nullString(),
const std::list< DtString > *  list = 0,
DtServerRequestResponseCallbackFcn  fcn = 0,
void *  usr = 0 
)
virtual

Sends a request the server to send back a PDU which contains the resource values for the specified object and resource values.

Parameters
nameThe name of the entity for which resources are being requested. If NULL, information for all entities will be returned.
listA list of resource names to be queried and returned. If NULL, all resources will be returned.
fcnThe static function that will be called with the result when it arrives.
usrA pointer that will be passed to the static callback function with the result.
virtual void DtVrfRemoteController::addObjectConsoleMessageCallback ( DtObjectConsoleMessageCallbackFcn  fcn,
void *  usr = 0 
)
virtual

Object Console Information.

Manage callbacks which will get called each time a object console message is received over the network.

virtual void DtVrfRemoteController::removeObjectConsoleMessageCallback ( DtObjectConsoleMessageCallbackFcn  fcn,
void *  usr = 0 
)
virtual

Object Console Information.

Manage callbacks which will get called each time a object console message is received over the network.

virtual void DtVrfRemoteController::setObjectNotifyLevel ( const DtUUID objectName,
DtNotifyLevelType  notifyLevel,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Sends a request to the sim engine to change the notification level of the specified object.

virtual void DtVrfRemoteController::logObjectConsoleToFile ( const DtUUID objectName,
const DtFilename  filename 
)
virtual

Starts the sim engine logging this object console to the specified file.

This file will be written by the sim engine that is simulating this object.

virtual void DtVrfRemoteController::stopLoggingObjectConsoleToFile ( const DtUUID objectName)
virtual

Stops any sim engine which is currently writing a log file for this object.

virtual void DtVrfRemoteController::addBackendConsoleMessageCallback ( DtBackendConsoleMessageCallbackFcn  fcn,
void *  usr = 0 
)
virtual

Back-end Console Information.

Manage callbacks that will get called each time a back-end console message is received over the network.

virtual void DtVrfRemoteController::removeBackendConsoleMessageCallback ( DtBackendConsoleMessageCallbackFcn  fcn,
void *  usr = 0 
)
virtual

Back-end Console Information.

Manage callbacks that will get called each time a back-end console message is received over the network.

virtual void DtVrfRemoteController::requestResourceNames ( const std::vector< DtUUID > &  list,
DtServerRequestResponseCallbackFcn  fcn = 0,
void *  usr = 0 
)
virtual

Sends a request to the server to return a list of resource names associated with the entities supplied.

The response will only contain a list of resources. It will not associate the resource with the entity has that has

virtual DtRadioMessageListener* DtVrfRemoteController::radioMessageListener ( )
virtual

Returns a pointer to the radio message listener.

Callbacks can be registered with this listener to pick up radio messages that are send by VR-Forces objects.

Note
Callbacks are invoked on sending of the radios messages, which does not necessarily mean the message was received.
DtRemoteEnvironmentController* DtVrfRemoteController::remoteEnvironmentController ( )

Weather.

Returns myRemoteEnvironmentController.

virtual void DtVrfRemoteController::initializeGlobalEnvironment ( const DtSimulationAddress &  environmentSimBackend = DtSimSendToAll)
virtual

Starts the environment simulation on one of the available simulation engines.

Must be called before setting environment state settings in the DtRemoteEnvironmentController. If DtSimSendToAll passed, then an arbitrary sim engine is chosen to simulate the environment.

DtRemoteEnvironmentController* DtVrfRemoteController::createRemoteEnvironmentController ( )

Instantiates a new DtRemoteEnvironmentController, override to install a subclass.

virtual void DtVrfRemoteController::requestJoystickInformation ( const DtUUID ,
DtJoystickControlResponseFcn  ,
void *  ,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Joystick.

Requests joystick information (supported function groups and functions) for the given entity. Supplied function will be called (with user data) when information is retrieved

virtual void DtVrfRemoteController::takeControlOf ( const DtUUID ,
const std::set< DtString > &  functionGroups,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Takes control of the given entity for the supplied function group(s) for the purposes of joystick control.

virtual void DtVrfRemoteController::releaseControlOf ( const DtUUID ,
const std::set< DtString > &  functionGroups = std::set< DtString >(),
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Releases control of the given entity for the given function groups.

No function groups means release control of all

virtual void DtVrfRemoteController::sendJoystickControl ( const DtUUID ,
const DtString functionGroup,
const DtString function,
double  value,
bool  repeat = false,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Sends a joystick control message to the given entity for the given function group and function using the supplied value.

static void DtVrfRemoteController::doPendingSaveWorkCb ( void *  usr)
static

Invoked periodically while waiting for a save command to complete.

static void DtVrfRemoteController::doPendingExportWorkCb ( void *  usr)
static

Invoked periodically while waiting for a export command to complete.

static void DtVrfRemoteController::doPendingLoadWorkCb ( void *  usr)
static

Invoked periodically while waiting for a load command to complete.

static void DtVrfRemoteController::savedScenarioCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a backend notifies us that it has saved and send it scenario information.

static void DtVrfRemoteController::exportScenarioCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a backend notifies us that it has exported and send it scenario information.

static void DtVrfRemoteController::loadedScenarioCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a backend notifies us that it has received and loaded the given scenario information.

static void DtVrfRemoteController::receiveFileCb ( const DtFilename &  filename,
void *  usr 
)
static

Invoked when a file has been received from our dedicated TCP socket.

static void DtVrfRemoteController::receivedMultiPlanCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when we receive a multiple plan response.

virtual void DtVrfRemoteController::processReceivedMultiPlan ( DtIfMultiplePlanResponse msg)
virtual

Invokes callback for request id.

static void DtVrfRemoteController::objectCreatedCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when an object we've requested has been created.

static void DtVrfRemoteController::receivedPlanCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when we receive a plan as a result of a plan request.

static void DtVrfRemoteController::receivedPlanStmtCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when we receive a plan statement message.

static void DtVrfRemoteController::overlayObjectCreatedCallback ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
void *  usr 
)
static

Invoked when an overlay object is created.

Will call the processOverlayObjectCreated() method

virtual void DtVrfRemoteController::processOverlayObjectCreated ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
DtVrfOverlayObjectModify modifications 
)
virtual
static void DtVrfRemoteController::indirectArtilleryObjectCreatedCallback ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
void *  usr 
)
static

Invoked when an indirect artillery object is created.

Will call the processOverlayObjectCreated() method

virtual void DtVrfRemoteController::processIndirectArtilleryObjectCreated ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
DtVrfIndirectArtilleryObjectModify modifications 
)
virtual
static void DtVrfRemoteController::resourcesProcessedCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a resource request is called via requestResources.

virtual void DtVrfRemoteController::processResourcesProcessedCb ( const DtIfServerRequestResponse rsp)
virtual

Process this message if the request id is one we generated.

static void DtVrfRemoteController::spatialSubdivisionConfigurationCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a query spatial subdivision configuration request is made via querySpatialSubdivisionConfiguration().

Calls process

virtual void DtVrfRemoteController::processSpatialSubdivisionConfigurationCb ( const DtIfServerRequestResponse rsp)
virtual

Process this message if the request id is one we generated.

Calls sendQuerySpatialSubdivisionConfigurationRequest() to send out request.

static void DtVrfRemoteController::commentInteractionCallback ( DtCommentInteraction *  inter,
void *  usr 
)
static

Invoked when a comment interaction is received from the network.

Calls processCommentInteraction().

virtual void DtVrfRemoteController::processCommentInteraction ( DtCommentInteraction *  inter)
virtual

Processes an incoming comment interaction.

Object console messages are sent via comment interactions.

virtual DtVrfConfigurationFileComposer* DtVrfRemoteController::composer ( )
virtual

Returns current composer.

static void DtVrfRemoteController::joystickControlResponse ( DtSimMessage msg,
void *  usr 
)
staticprotected

Invoked when a resource request is called via requestResources.

virtual void DtVrfRemoteController::processJoystickControlResponse ( DtSimMessage msg)
protectedvirtual
virtual void DtVrfRemoteController::onInit ( )
protectedvirtual

Initializes myTempDirectory, host inet address, myListener, myRadioMessageListener, myRemoteEnvironmentController.

Registers all callbacks and factories.

virtual void DtVrfRemoteController::resetStateData ( )
protectedvirtual
virtual void DtVrfRemoteController::emptyLists ( )
protectedvirtual
virtual void DtVrfRemoteController::sendAggregateAsMsg ( const DtSimulationAddress &  addr,
unsigned int  requestId,
const DtObjectType objectType,
DtForceType  force,
const DtVector position,
DtReal  heading,
DtList *  entityNames,
DtAggregateState  initialAggregateState 
) const
protectedvirtual

Fills out and sends an aggregate-as message.

virtual DtVrfConfigurationFileComposer* DtVrfRemoteController::createComposer ( )
protectedvirtual

Initializes the myComposer variable.

virtual DtUUIDNetworkManager* DtVrfRemoteController::createUUIDNetworkManager ( ) const
protectedvirtual

Creates a new UUID network manager.

virtual void DtVrfRemoteController::sendQuerySpatialSubdivisionConfigurationRequest ( const DtSimulationAddress &  backendAddress,
DtSpatialSubdivisionType  spatialSubdivisionType,
DtServerRequestResponseCallbackFcn  fcn,
void *  usr 
)
protectedvirtual

Sends DtIfQuerySpatialSubdivisionConfiguration request for given spatial subdivision type.

virtual bool DtVrfRemoteController::arbitrarySimAddress ( DtSimulationAddress &  address) const
protectedvirtual

Chooses an arbitrary simulation address from the current set of registered backends.

This is used for commands that must be sent to only one sim engine, but have DtSimSendToAll specified. Chooses the first address on the list.

Returns
True if filled in a valid address. False if there were no registered sim engines.
virtual bool DtVrfRemoteController::addStatementsAndSendPlan ( const DtPlan plan,
DtIfPlan planMsg,
const DtSimulationAddress &  addr = DtSimSendToAll,
int *  retiStatus = 0,
DtString retsStmt = 0 
) const
protectedvirtual

Adds the statements from plan to planMsg, and sends planMsg to the specified address.

If the plan gets too long, multiple plan messages are sent, to be appended on the sim engine side. If any of the statements are too large to be encoded into the planMsg, an error code and the text of the invalid statement are returned in retiStatus and retsStmt.

Returns
True if successful.
static void DtVrfRemoteController::deliverRadioMessageCallback ( DtSimMessage msg,
void *  usr 
)
staticprotected

Callback registered with the message interface for vrfObjectMessages.

Calls processVrfObjectMessage().

static void DtVrfRemoteController::vrfObjectMessageCallback ( const DtVrfObjectMessage objMsg,
void *  usr 
)
staticprotected
virtual void DtVrfRemoteController::processVrfObjectMessage ( const DtVrfObjectMessage objectMsg)
protectedvirtual

If the message is addressed to the front end, passes it to the objectMessageExecutive for processing by any registered callbacks.

static void DtVrfRemoteController::globalEnvironmentCreatedCb ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
void *  usr 
)
staticprotected

Called when global weather object is created, will then set time of day.

This will only be called during new scenario creation

virtual void DtVrfRemoteController::processGlobalEnvironmentCreated ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid 
)
protectedvirtual
virtual bool DtVrfRemoteController::newScenario ( const DtFilename &  dbname,
const DtFilename &  guidbname,
const DtFilename &  opdname,
const DtFilename &  physicalWorldName,
const std::vector< DtString > &  simulationModelSetFiles,
const DtScenario baseScenario = 0,
time_t  startTimeOfDay = 12 *3600,
DtString errorString = 0 
)
virtual

Called internally from new scenario methods.

Create a new scenario from a simulation model set files. Creates and sends the load scenario message. Creates the environmental weather object on the first available back-end by calling createEntity().

Member Data Documentation

DtExerciseConn* DtVrfRemoteController::myExConn
protected
DtReflectedEnvironmentProcessList* DtVrfRemoteController::myReflectedEnvironmentProcessList
protected
bool DtVrfRemoteController::myCreatedReflectedEnvironmentProcessList
protected
DtVrfMessageInterface* DtVrfRemoteController::myMsgIf
protected
DtVrfBackendListener* DtVrfRemoteController::myListener
protected
DtCompressedFileTransporter* DtVrfRemoteController::myTransporter
protected
DtList DtVrfRemoteController::myReceivedFiles
protected
DtList DtVrfRemoteController::myReceivedSaves
protected
DtU32 DtVrfRemoteController::myCurrentRequestId
protected
DtTime DtVrfRemoteController::myLastCommandTime
protected
DtTime DtVrfRemoteController::myMaxWaitLoadTime
protected
DtTime DtVrfRemoteController::myMaxWaitSaveTime
protected
DtList DtVrfRemoteController::myBeList
protected
DtList DtVrfRemoteController::myScenLoadedCbs
protected
DtList DtVrfRemoteController::myBeLoadedCbs
protected
DtList DtVrfRemoteController::myScenSavedOldCbs
protected
DtList DtVrfRemoteController::myScenSavedCbs
protected

list of any deprecated old-style save callbacks that have been registered

DtList DtVrfRemoteController::myScenExportedCbs
protected

list of any preferred new-style save callbacks that have been registered

DtList DtVrfRemoteController::myScenSavedCheckpointCbs
protected

list of any preferred new-style save callbacks that have been registered

DtList DtVrfRemoteController::myBeSavedCbs
protected

list of any preferred new-style save callbacks that have been registered

DtPlanCallbackListType DtVrfRemoteController::myPlanCbs
protected
DtStatementCallbackListType DtVrfRemoteController::myStmtCbs
protected
DtPlanCompleteCallbaclListType DtVrfRemoteController::myPlanCompleteCbs
protected
DtHashlist DtVrfRemoteController::myObjectCbs
protected
DtObjectConsoleMessageCallbackListType DtVrfRemoteController::myObjectConsoleMessageCallbackList
protected
DtBackendConsoleMessageCallbackListType DtVrfRemoteController::myBackendConsoleMessageCallbackList
protected
bool DtVrfRemoteController::myCreatedMsgIf
protected
DtFilename DtVrfRemoteController::mySaveName
protected
double DtVrfRemoteController::mySimTimeForCheckpointSave
protected
DtFilename DtVrfRemoteController::myOverlayFilename
protected
DtFilename DtVrfRemoteController::mySelectionGroupsFilename
protected
DtFilename DtVrfRemoteController::mySymbolMapFilename
protected
DtFilename DtVrfRemoteController::myCreateMenuFilename
protected
DtFilename DtVrfRemoteController::myOpdName
protected
DtFilename DtVrfRemoteController::myHostilityFilename
protected
DtFilename DtVrfRemoteController::myScenarioExtrasFilename
protected
DtScenario* DtVrfRemoteController::mySaveScen
protected
DtScenario* DtVrfRemoteController::myLoadScen
protected
DtVrfConfigurationFileComposer* DtVrfRemoteController::myComposer
protected
bool DtVrfRemoteController::myRemapped
protected

true if a DtBackendRemappingFcn was called on the current scenario

bool DtVrfRemoteController::myPreserveMappings
protected

false if a DtPreserveMappingsFcn returned false when saving a scenario

bool DtVrfRemoteController::myDidRemap
protected

true if at some point during the save of this scenario the user decided to remap the objects to the new back end.

If true, the user will no longer be prompted to preserve mappings

bool DtVrfRemoteController::myNeedsGlobalEnvironment
protected

Set to true if needs to create global environment on first load of simulation.

DtDefaultVrfObjectMessageFactory DtVrfRemoteController::myVrfObjectMsgFact
protected

These are needed for message callbacks to work.

DtDefaultCondExprFactory DtVrfRemoteController::myCondExprFact
protected
DtDefaultStatementFactory DtVrfRemoteController::myStmtFact
protected
DtDefaultSimReportFactory DtVrfRemoteController::myReportFact
protected
DtDefaultSimTaskFactory DtVrfRemoteController::myTaskFact
protected
DtDefaultSetDataRequestFactory DtVrfRemoteController::mySetDataFact
protected
DtDefaultSimCommandFactory DtVrfRemoteController::mySimCommandFact
protected
DtDefaultAdminContentFactory DtVrfRemoteController::myAdminContentFact
protected
DtString DtVrfRemoteController::myGuiTerrainDatabaseFilename
protected

This member variable will contain the front end database (if different from backe-end).

It is set on new scenario, load scenario or by accessor function

DtRwKeyValueList DtVrfRemoteController::myScenarioData
protected

Extra data used to be saved with the scenarip.

DtFilename DtVrfRemoteController::myTempDirectory
protected

Location for temporary files generated by the configuration composer and file transporter.

DtInetAddr DtVrfRemoteController::myInetAddr
protected

This is the Internet address to send saved files back to from the server.

If this program is run on a machine that has multiple Internet cards, call the setHostInetAddr method to the Internet address to use

unsigned int DtVrfRemoteController::myRequestIdCounter
mutableprotected

Incremented by generateRequestId() to assign new request id's.

This value should only be changed by generateRequestId(). It's declared as mutable so that generateRequestId() and all the functions that call it can be const functions.

DtVrfObjectMessageExecutive DtVrfRemoteController::myObjectMessageExecutive
protected

Used to processes VrfObjectMessages addressed to the Front End.

DtRadioMessageListener* DtVrfRemoteController::myRadioMessageListener
protected

Used to spy on radio messages sent between VRF Entities.

DtRemoteEnvironmentController* DtVrfRemoteController::myRemoteEnvironmentController
protected

Used to monitor and change the weather state.

int DtVrfRemoteController::myStartTimeOfDay
protected

Only set for a new scenario.

int DtVrfRemoteController::myScenarioExportRequestId
protected

Pending export request id.

DtFilename DtVrfRemoteController::myExportFile
protected

When received, the file to save the export file to.

bool DtVrfRemoteController::myReceivedExportFile
protected

Set to true once export file has been received.

bool DtVrfRemoteController::myAwaitingExportComplete
protected

Set to know we've received the export complete message but not the file yet.

bool DtVrfRemoteController::myUseDayNightModel
protected
DtDefaultSimulationModelSetValidatorManager DtVrfRemoteController::mySimulationModelSetValidator
protected
DtUUIDNetworkManager* DtVrfRemoteController::myUUIDNetworkManager
protected

Class that will manage and work with VR-Forces UUIDs and make sure the mapping is kept up to date.

Created during init process

JoystickResponseCallbackInfo DtVrfRemoteController::myJoystickResponseCallbackInfo
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)