VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Public Attributes | 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. Instantiating this class allows the sending and received of control messages over the network to control one or more vrfSim executables in the same exercise. It allows for all control, such as loading/saving scenarios, creating/deleting entities and objects, tasking entities, and so forth.

All control and response is accomplished by sending encoded messages though data interactions/PDUs over the network. All encoding and decoding is performed by the remote control functions.

The DtVrfRemoteController does not instantiate reflected lists or maintain lists of the objects in the simulation. This class requires an active DtCommunication<Manager to work. It does not need an active connection, just the manager.

Examples
Inheritance diagram for DtVrfRemoteController:
Inheritance graph
[legend]

Public Types

enum  ComponentAttachmentRule { AttachNone =0, CanAttachAny }
 

Public Member Functions

virtual void createOrSetMessageInterface (DtVrfMessageInterface *iface)
 
virtual void createOrSetVrfTDLMessageInterface (DtVrfTDLMessageInterface *iface)
 
virtual void tick ()
 
0. Class Admin

Constructor, various accessors, etc.

 DtVrfRemoteController (int receivePort=9000)
 
virtual ~DtVrfRemoteController ()
 
virtual DtVrfMessageInterfacevrfMessageInterface () const
 
virtual DtVrfTDLMessageInterfacevrfTDLMessageInterface () const
 
virtual
DtVrfConfigurationFileComposer
composer ()
 
virtual void setHostInetAddr (DtInetAddr)
 
virtual DtInetAddr hostInetAddr () const
 
virtual const DtSimulationAddress & simulationAddress () const
 
virtual int sessionId () const
 
virtual unsigned int generateRequestId () const
 
DtNetworkInterfaceManagernetworkInterfaceManager ()
 
makVrfEvents::DtEventManagereventManager ()
 
DtCommunicationManagercommunicationManager ()
 
DtRemoteEnvironmentControllerremoteEnvironmentController ()
 
DtRemoteEnvironmentControllercreateRemoteEnvironmentController ()
 
DtBackendSelectorManagerbackendSelectorManager () const
 
I. Initialization

Functions called to initialize the remote controller.

virtual void init (DtCommunicationManager *exConn, DtVrfMessageInterface *msgInterface=0, DtVrfTDLMessageInterface *tdlMessageInterface=0)
 
II. Back end Information

Information about back end status.

virtual const DtList & backends () const
 
virtual const DtList & pendingBackends () const
 
virtual DtVrfBackendListenerbackendListener () const
 
virtual void addBackendDiscoveryCallback (DtBackendCallbackFcn fcn, void *usr)
 
virtual void removeBackendDiscoveryCallback (DtBackendCallbackFcn fcn, void *usr)
 
virtual void addBackendRemovalCallback (DtBackendCallbackFcn fcn, void *usr)
 
virtual void removeBackendRemovalCallback (DtBackendCallbackFcn fcn, void *usr)
 
virtual int backendsControlState () const
 
virtual int numberBackendsLoaded () const
 
virtual bool allBackendsReady () const
 
virtual bool backendLoaded (const DtSimulationAddress &addr) const
 
virtual void modifyBackEndSetting (const DtSettingsObject *setting, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual void requestBackEndSetting (std::string name, DtBackEndSettingRequestCompleteCallbackFcn fcn, void *usr=0, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual double simTime (const DtSimulationAddress *a=NULL) const
 
III. Simulation Configuration
virtual void setSpotReportsGloballyEnabled (bool enabled)
 
virtual void setTDLMessagesGloballyEnabled (bool enabled)
 
virtual void setEngagementReportsGloballyEnabled (bool enabled)
 
virtual void setPeriodicSnapshotSettings (bool enabled, double period, int numberOfSnapshotsToKeep)
 
virtual void setDRThresholds (double translation, double rotation)
 
virtual void setCommModelSettings (bool useExternalComms)
 
virtual void setRoadDrivingSettings (bool driveOnLeft)
 
virtual void setRadarCoverageAltitudeMSL (bool)
 
virtual void setRadarCoverageAltitudeSettings (const DtRadarCoverageAltitudeSettings &settings)
 
virtual void setPublishAggregateFormationRoutes (bool yesNo)
 
virtual void setRotationThreshold (DtReal thresh)
 
virtual void setTranslationThreshold (DtReal thresh)
 
virtual void setAggDimensionThreshold (DtReal thresh)
 
virtual void querySpatialSubdivisionConfiguration (const DtSimulationAddress &backendAddress, DtSpatialSubdivisionType spatialSubdivisionType, DtServerRequestResponseCallbackFcn fcn=0, void *usr=0)
 
virtual void setSpatialSubdivsionConfiguration (const DtSimulationAddress &backendAddress, DtSpatialSubdivisionType spatialSubdivisionType, const int spatialSubdivisionXResolution, const int spatialSubdivisionYResolution, const int spatialSubdivisionZResolution)
 
virtual void processSpatialSubdivisionConfigurationCb (const DtIfServerRequestResponse &rsp)
 
IV. Scenario management - A

Creating a New Scenario

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, const DtChangeWeatherCommand &initialEnvironmentCondition=DtChangeWeatherCommand())
 
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, const DtChangeWeatherCommand &initialEnvironmentCondition=DtChangeWeatherCommand())
 
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, const DtChangeWeatherCommand &initialEnvironmentCondition=DtChangeWeatherCommand())
 
virtual void createSimulationObjectGroup (const DtSimulationAddress &, const DtString &simulationObjectGroup, const DtVector &createPosition, double offsetRotation, int createFlags, DtForceType force, bool storedInZipFile=false)
 
IV. Scenario management - B

Loading and Importing Scenarios

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, int *numberOfObjects=nullptr)
 
virtual bool loadScenario (const DtScenarioLoadInformation &, const std::vector< DtString > &simulationModelSetFiles=std::vector< DtString >(), DtString *errorString=0, int *numberOfObjects=nullptr)
 
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, int *numberOfObjects=nullptr)
 
virtual bool sendLoadScenarioMessage (const DtScenario &scenario, const DtSimulationAddress &addr=DtSimSendToAll, bool import=false, bool isOrbatEnabled=false, bool createGlobalEnv=false, bool createGlobalDynamicTerrain=false) const
 
virtual void createGlobalEnvironment (bool)
 
virtual DtIfLoadScenariocreateLoadScenarioMessage () const
 
virtual void addBackendLoadedCallback (DtBackendCallbackFcn fcn, void *usr)
 
virtual void removeBackendLoadedCallback (DtBackendCallbackFcn fcn, void *usr)
 
virtual void addScenarioLoadedCallback (DtScenarioCallbackFcn fcn, void *usr)
 
virtual void removeScenarioLoadedCallback (DtScenarioCallbackFcn fcn, void *usr)
 
virtual bool rollbackToSnapshot (double simTime)
 
virtual bool importScenario (const DtScenario &, const DtSimulationAddress &addr, DtString *errorString=0)
 
virtual bool importScenario (const DtFilename &, const DtSimulationAddress &addr, DtString *errorString=0)
 
virtual bool importScenarioDescriptionFile (const DtFilename &file, DtSimulationAddress, const DtString &format, const std::map< std::string, std::string > &importData)
 
virtual void setMaxWaitLoadTime (DtTime t)
 
virtual DtTime maxWaitLoadTime () const
 
IV. Scenario management - C

Saving and Exporting Scenarios

virtual bool exportScenarioDescriptionFile (const DtFilename &file, DtSimulationAddress, const DtString &format, const std::map< std::string, std::string > &importData)
 
virtual DtString guiTerrainDatabaseFilename () const
 
virtual void setGuiTerrainDatabaseFilename (DtString db)
 
virtual const DtRwKeyValueListscenarioData () const
 
virtual void setScenarioData (const DtRwKeyValueList &)
 
virtual bool isSavingScenario () const
 
virtual bool saveScenario (const DtFilename &saveName, DtPreserveMappingsFcn fcn=0, void *userData=0, DtString *error=0, bool saveToZip=false, bool deleteExistingZip=true, double simTime=-1)
 
virtual bool save (DtString &sError)
 
virtual bool saveScenarioCheckpoint (const DtFilename &filename, double simTime, bool saveToZip=false, DtString *saveError=0)
 
virtual void takeSnapshot (DtSimulationAddress addr=DtSimSendToAll)
 
virtual void takeBaseSnapshot ()
 
virtual void createGlobalDynamicTerrain (bool)
 
virtual void sendSaveScenarioMessage (const DtSimulationAddress &addr=DtSimSendToAll, double simTime=-1, const DtFilename &saveScenarioFilename="") const
 
virtual void addBackendSavedCallback (DtBackendSaveCallbackFcn fcn, void *usr)
 
virtual void removeBackendSavedCallback (DtBackendSaveCallbackFcn fcn, void *usr)
 
virtual void addScenarioSavedCallback (DtScenarioCallbackFcn fcn, void *usr)
 
virtual void removeScenarioSavedCallback (DtScenarioCallbackFcn fcn, void *usr)
 
virtual void addScenarioAboutToBeSavedCallback (DtScenarioAboutToBeSavedCallbackFcn fcn, void *usr)
 
virtual void removeScenarioAboutToBeSavedCallback (DtScenarioAboutToBeSavedCallbackFcn fcn, void *usr)
 
virtual void addScenarioExportedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
 
virtual void removeScenarioExportedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
 
virtual void addCheckpointSavedCallback (DtCheckpointSavedCallbackFcn fcn, void *usr)
 
virtual void removeCheckpointSavedCallback (DtCheckpointSavedCallbackFcn fcn, void *usr)
 
virtual void addScenarioSavedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
 
virtual void removeScenarioSavedCallback (DtScenarioSavedCallbackFcn fcn, void *usr)
 
virtual void setOpdSaveName (const DtFilename &f)
 
virtual const DtFilename & opdSaveName () const
 
virtual void setMaxWaitSaveTime (DtTime t)
 
virtual DtTime maxWaitSaveTime () const
 
virtual void setOverlayFilename (const DtFilename &overlay)
 
virtual const DtFilename & overlayFilename () const
 
virtual void setScenarioExtrasFilename (const DtFilename &extras)
 
virtual const DtFilename & scenarioExtrasFilename () const
 
virtual void setSelectionGroupsFilename (const DtFilename &sel)
 
virtual const DtFilename & selectionGroupsFilename () const
 
virtual void setSymbolMapFilename (const DtFilename &overlay)
 
virtual const DtFilename & symbolMapFilename () const
 
virtual void setCreateMenuFilename (const DtFilename &overlay)
 
virtual const DtFilename & createMenuFilename () const
 
virtual void saveParameterDb (const DtFilename &filename)
 
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, bool saveAsZip=false)
 
IV. Scenario management - D

Closing a Scenario

virtual void closeScenario (const DtSimulationAddress &addr=DtSimSendToAll, const DtFilename &databaseToOpen="", bool forceCloseAll=false)
 
virtual void reinitializeScenario ()
 
IV. Scenario management - E

Controlling a Scenario

virtual void run (bool useStartStopInteraction=false, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void pause (bool useStartStopInteraction=false, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void rewind ()
 
virtual void exit (const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void step () const
 
virtual void setTimeMultiplier (double multiplier) const
 
IV. Scenario management - F

Internal functions

Users should not need to call these. However, they are available to override in plugins.

virtual void loadedScenario (const DtSimulationAddress &addr, unsigned int requestId, const DtU32 &capabilities)
 
virtual void backendReceivedScenario (const DtSimulationAddress &addr, unsigned int requestId)
 
virtual void initializeGlobalDynamicTerrain (const DtSimulationAddress &environmentSimBackend=DtSimSendToAll)
 
virtual void save (const DtSimulationAddress &addr, DtIfSaveComplete *s)
 
virtual void processSaveMessages ()
 
virtual void exported (const DtSimulationAddress &addr, DtIfExportComplete *s)
 
virtual void completeExport ()
 
virtual void savedScenario (const DtSimulationAddress &addr, DtSaveResult result, unsigned int requestId, bool isCheckpointSave=false, double checkpointSimTime=-1)
 
virtual void doPendingSaveWork ()
 
virtual void doPendingExportWork ()
 
virtual void doPendingLoadWork ()
 
virtual DtTime scenarioSimTimeForSave ()
 
virtual void setTerrainDatabaseFilename (DtScenario *scen)
 
virtual void setParameterDatabaseFilename (DtScenario *scen)
 
virtual void setPhysicalWorldFilename (DtScenario *scen)
 
virtual void setTimeMultiplier (DtScenario *scen)
 
virtual void setAutoReorganize (DtScenario *scen)
 
virtual void setRandomNumberSeed (DtScenario *scen)
 
virtual void setFrameRateMode (DtScenario *scen)
 
virtual void setFrameDeltaTime (DtScenario *scen)
 
virtual void setExerciseStartTime (DtScenario *scen)
 
virtual void setExerciseStartDateAndTime (DtScenario *scen)
 
V.Object Management - A

Control Objects

These functions provide the capability to manipulate specific classes of control objects, including

  • waypoints
  • routes
  • phase lines
  • areas
  • aerodromes
  • obstacles
  • disaggregation areas
  • overlays
  • global artillery ("indirect" artillery)
virtual void createAerodrome (DtString airportCode, const DtForceType &forceType=DtForceNeutral, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual void createWaypoint (const DtVector &geocentricPosition, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 
virtual void createWaypoint (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtVector &geocentricPosition, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 
virtual void modifyWaypoint (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtVector *geocentricPosition=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void createRoute (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 
virtual void createRoute (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 
virtual void modifyRoute (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *vertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void createPhaseLine (const DtVector &dbPoint1, const DtVector &dbPoint2, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 
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, const DtUUID &startingUUID=DtUUID::nullUUID())
 
virtual void modifyPhaseLine (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtVector *newDbPoint1=0, DtVector *newDbPoint2=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void createControlArea (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 
virtual void createControlArea (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 
virtual void modifyControlArea (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *newVertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void createObstacle (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 
virtual void createObstacle (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 
virtual void modifyObstacle (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *newVertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void createDisaggregationArea (const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID()) const
 
virtual void createDisaggregationArea (DtVrfObjectCreatedCallbackFcn fcn, void *usr, const DtList &vertices, const DtString &uniqueName=DtString::nullString(), const DtString &label=DtString::nullString(), const DtSimulationAddress &addr=DtSimSendToAll, const DtUUID &startingUUID=DtUUID::nullUUID())
 
virtual void modifyDisaggregationArea (const DtUUID &uuid, DtString *uniqueName=0, DtString *label=0, DtList *newVertices=0, const DtSimulationAddress &addr=DtSimSendToAll) const
 
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 DtUUID &attachTo=DtUUID::nullUUID(), 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, const DtUUID &uuidForCreation=DtUUID::nullUUID())
 
virtual void processOverlayObjectCreated (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, DtVrfOverlayObjectModify *modifications)
 
virtual void setPhysicalLineWidth (const DtSimulationAddress &addr, const DtUUID &entityId, double w)
 
virtual void setPhysicalLineHeight (const DtSimulationAddress &addr, const DtUUID &entityId, double h)
 
virtual void setCeiling (const DtSimulationAddress &addr, const DtUUID &entityId, double c)
 
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
 
virtual void createIndirectArtillery (const DtVrfIndirectArtilleryObjectModify *params, const DtSimulationAddress &addr)
 
virtual void processIndirectArtilleryObjectCreated (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, DtVrfIndirectArtilleryObjectModify *modifications)
 
virtual void sendVrfIndirectArtilleryObjectModifyMsg (const DtSimulationAddress &addr, const DtUUID &uuid, const DtVrfIndirectArtilleryObjectModify *mod) const
 
V. Object Management - B

Entity and Aggregate (Hierarchy) Objects

virtual void createObject (const DtEntityType &type, DtForceType force, DtList *vertices, const DtString &name, const DtSimulationAddress &addr, const DtUUID &startingUUID=DtUUID::nullUUID())
 
virtual void objectCreated (unsigned int requestId, const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid)
 
virtual void deleteObject (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 
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 DtUUID &startingUUID=DtUUID::nullUUID()) const
 
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, const DtUUID &startingUUID=DtUUID::nullUUID())
 
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, const DtUUID &startingUUID=DtUUID::nullUUID(), bool createSubordinates=false)
 
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 DtUUID &startingUUID=DtUUID::nullUUID()) const
 
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, const DtUUID &startingUUID=DtUUID::nullUUID())
 
virtual void addToOrganization (const DtUUID &objectId, const DtUUID &newSuperiorId, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual void addToForceLevelOrganization (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual void removeFromOrganization (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual void setLabel (const DtUUID &uuid, const DtString &label, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setOverlayParent (const DtUUID &uuid, const DtString &label, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setAltitude (const DtUUID &uuid, double altitude, bool aboveGroundLevel=false, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setLocation (const DtUUID &uuid, DtVector coord, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setAppearance (const DtUUID &uuid, int appearance, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setCapabilities (const DtUUID &uuid, int capabilities, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setHeading (const DtUUID &uuid, double degrees, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setForce (const DtUUID &uuid, DtForceType force, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void requestSpotReports (const DtUUID &uuid, int onOff, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void requestSendTDLMessages (const DtUUID &uuid, int onOff, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void requestEngagementReports (const DtUUID &uuid, bool onOff, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setResource (const DtUUID &uuid, const char *resourceType, double value, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setRulesOfEngagement (const DtUUID &uuid, const char *rulesType, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setSectorOfResponsibility (const DtUUID &uuid, double center, double size, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setSpeed (const DtUUID &uuid, double speed, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setCurrentSpeed (const DtUUID &uuid, double speed, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setTarget (const DtUUID &uuid, const DtUUID &target, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setSuperior (const DtUUID &uuid, const DtUUID &superior, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setTaskedBySuperior (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setConcealed (const DtUUID &uuid, bool yes, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setEmitter (const DtUUID &uuid, int emitterId, bool on, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setEmergencyBeacon (const DtUUID &uuid, bool on, const DtSimulationAddress &addr=DtSimSendToAll) const
 
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
 
virtual void restore (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setDestroyed (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setLifeformWeaponState (const DtUUID &uuid, DtWeaponState weapon, const DtSimulationAddress &addr) const
 
void setSystemEnabled (const DtUUID &name, const DtString &systemName, bool val, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void setLifeformPosture (const DtUUID &uuid, DtLifeformState posture, const DtSimulationAddress &addr) const
 
virtual void setAggregateFormation (const DtUUID &leader, const DtString &formationName, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void reorganizeAggregate (const DtUUID &leader, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void sendSetDataMsg (const DtUUID &recipient, DtSetDataRequest *msg, const DtSimulationAddress &addr, bool sendImmediately=false) const
 
V. Object Management - C

Sending Messages To Objects

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 DtUUID &uuidForCreation=DtUUID::nullUUID()) const
 
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
 
VI. Tasks

These functions start tasks and monitor execution status.

virtual void sendTaskMsg (const DtUUID &recipient, DtSimTask *task, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void moveAlongRoute (const DtUUID &entityName, const DtUUID &routeName, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void moveToWaypoint (const DtUUID &entityName, const DtUUID &waypoint, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void moveToLocation (const DtUUID &entityName, const DtVector &destinationLocation, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void patrolBetweenWaypoints (const DtUUID &uuid, const DtUUID &waypoint1, const DtUUID &waypoint2, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void patrolAlongRoute (const DtUUID &uuid, const DtUUID &route, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void followEntity (const DtUUID &uuid, const DtUUID &leader, const DtVector &offset, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void wait (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void waitDuration (const DtUUID &uuid, DtTime duration, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void waitElapsed (const DtUUID &uuid, DtTime elapsed, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void skipTask (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 
VII. Plans - A

Entity Plans

virtual void restartPlan (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void assignPlanByName (const DtUUID &uuid, const DtPlan &plan, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=NULL, DtString *retsStmt=NULL) const
 
virtual void assignMultiplePlanByName (const std::vector< DtUUID > &entities, const DtPlan &plan, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=NULL, DtString *retsStmt=NULL) const
 
virtual void requestPlan (const DtUUID &uuid, bool addStmtCallback=true, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void subscribePlan (const DtUUID &uuid, DtPlanCallbackFcn fn, void *usr, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual void receivedPlan (const DtUUID &uuid, bool isGlobal, const std::vector< DtSimStatement * > &statements)
 
virtual void requestMultiplePlan (const std::vector< DtUUID > &entities, DtMultiplePlanRequestCallbackFcn fcn, void *usr, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual void requestMultiplePlan (const std::vector< DtUUID > &entities, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual void processReceivedMultiPlan (DtIfMultiplePlanResponse *msg)
 
virtual void unsubscribePlan (const DtUUID &uuid, DtPlanCallbackFcn fn, void *usr)
 
virtual void unsubscribeAllPlans ()
 
virtual void addPlanStatementCallback (const DtUUID &uuid, DtPlanStatementCallbackFcn callback, void *usrData)
 
virtual void removePlanStatementCallback (const DtUUID &uuid, DtPlanStatementCallbackFcn callback, void *usrData)
 
virtual void removeAllPlanStatementCallbacks ()
 
virtual void receivedPlanStmt (const DtUUID &uuid, bool isGlobal, DtPlanStatus planStatus)
 
virtual void addPlanCompleteCallback (const DtUUID &uuid, DtPlanCompleteCallbackFcn callback, void *usrData)
 
virtual void removePlanCompleteCallback (const DtUUID &uuid, DtPlanCompleteCallbackFcn callback, void *usrData)
 
virtual void removeAllPlanCompleteCallbacks ()
 
virtual void abandonPlan (const DtUUID &uuid, const DtSimulationAddress &addr=DtSimSendToAll) const
 
VII. Plans - B

Global Plans

virtual void requestGlobalPlansList (const DtSimulationAddress &addr)
 
virtual void assignGlobalPlan (const DtString &name, const DtPlan &plan, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=NULL, DtString *retsStmt=NULL) const
 
virtual void deleteGlobalPlan (const DtUUID &name, const DtSimulationAddress &addr=DtSimSendToAll) const
 
virtual void launchGlobalPlan (const DtUUID &, const DtSimulationAddress &addr) const
 
VIII. General Communication With Entities
virtual
DtVrfObjectMessageExecutive
objectMessageExecutive ()
 
virtual void sendMessageToObject (DtVrfObjectMessage *objectMessage, const DtSimulationAddress &addr=DtSimSendToAll, bool sendImmediately=false) const
 
virtual DtRadioMessageListenerradioMessageListener ()
 
IX. Simulation Control and Information Request

These functions control simulation activity and request entity information.

virtual void embarkObject (const DtSimulationAddress &addr, const DtUUID &entity, const DtUUID &ontoEntity, bool loadOverride=false, const DtVector &loadOverridePosition=DtVector::zero())
 
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)
 
virtual void requestTasksAndSetsFor (const std::vector< DtUUID > &names)
 
virtual void requestDIGuyAppearancesAndAnimations (const DtSimulationAddress &addr, const DtUUID &entityName)
 
virtual void requestDIGuyAppearancesAndAnimations (const std::vector< DtUUID > &names)
 
virtual void requestIndirectArtilleryInformation (const DtUUID &)
 
virtual void requestResourceNames (const std::vector< DtUUID > &list, DtServerRequestResponseCallbackFcn fcn=0, void *usr=0)
 
virtual void requestResources (const DtUUID &uuid=DtUUID::nullUUID(), const std::list< DtString > *list=0, DtServerRequestResponseCallbackFcn fcn=0, void *usr=0)
 
virtual void processResourcesProcessedCb (const DtIfServerRequestResponse &rsp)
 
X. Object Console Information

Functions to manipulate console messages.

virtual void addObjectConsoleMessageCallback (DtObjectConsoleMessageCallbackFcn fcn, void *usr=0)
 
virtual void removeObjectConsoleMessageCallback (DtObjectConsoleMessageCallbackFcn fcn, void *usr=0)
 
virtual void setObjectNotifyLevel (const DtUUID &objectName, DtNotifyLevelType notifyLevel, const DtSimulationAddress &addr=DtSimSendToAll)
 
virtual void logObjectConsoleToFile (const DtUUID &objectName, const DtFilename filename)
 
virtual void stopLoggingObjectConsoleToFile (const DtUUID &objectName)
 
virtual void addBackendConsoleMessageCallback (DtBackendConsoleMessageCallbackFcn fcn, void *usr=0)
 
virtual void removeBackendConsoleMessageCallback (DtBackendConsoleMessageCallbackFcn fcn, void *usr=0)
 
virtual void processCommentInteraction (const makVrfEvents::DtCommentEvent *inter)
 
XI. Joystick

Functions to configure joysticks

virtual void requestJoystickInformation (const DtUUID &, DtJoystickControlResponseFcn, void *, const DtSimulationAddress &addr=DtSimSendToAll, bool sendImmediately=false)
 
virtual void takeControlOf (const DtUUID &, const std::set< DtString > &functionGroups, const DtSimulationAddress &addr=DtSimSendToAll, bool sendImmediately=false)
 
virtual void releaseControlOf (const DtUUID &, const std::set< DtString > &functionGroups=std::set< DtString >(), const DtSimulationAddress &addr=DtSimSendToAll, bool sendImmediately=false)
 
virtual void sendJoystickControl (const DtUUID &, const DtString &functionGroup, const DtString &function, double value, bool repeat=false, const DtSimulationAddress &addr=DtSimSendToAll, bool sendImmediately=false)
 
XII. Simulation Status

Accessor for the status of the simulation. See DtBackend for a list of possible status. This status will apply to the simulation as a whole, not an individual back-end. To get the status of an individul back-end look up that back-end by address in the back-end listener and query the status of that back-end

virtual DtSimulationStatus simulationStatus () const
 
virtual void addSimulationStatusChangedCallback (DtSimulationStatusChangedCallbackFcn, void *)
 
virtual void removeSimulationStatusChangedCallback (DtSimulationStatusChangedCallbackFcn, void *)
 
XIII. Factories

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

virtual DtVrfObjectMessageFactoryvrfObjectMsgFactory ()
 
virtual DtCondExprFactorycondExprFactory ()
 
virtual DtStatementFactorystmtFactory ()
 
virtual DtSimReportFactoryreportFactory ()
 
virtual DtSimTaskFactorytaskFactory ()
 
virtual DtSetDataRequestFactorysetDataFactory ()
 
virtual DtSimCommandFactorysimCommandFactory ()
 
virtual DtAdminContentFactoryadminContentFactory ()
 

Public Attributes

boost::signals2::signal< void()> signal_initialized
 

Protected Types

typedef std::list< PlanCbInfoDtPlanCallbackListType
 
typedef std::list< StmtCbInfoDtStatementCallbackListType
 
typedef std::list
< PlanCompleteCbInfo
DtPlanCompleteCallbaclListType
 
typedef std::list< std::pair
< DtObjectConsoleMessageCallbackFcn,
void * > > 
DtObjectConsoleMessageCallbackListType
 
typedef std::list< std::pair
< DtBackendConsoleMessageCallbackFcn,
void * > > 
DtBackendConsoleMessageCallbackListType
 
typedef std::map< DtString,
std::pair
< DtJoystickControlResponseFcn,
void * > > 
JoystickResponseCallbackInfo
 

Protected Member Functions

virtual void registerEventManagerCallbacks ()
 
virtual void unregisterEventManagerCallbacks ()
 
virtual void processJoystickControlResponse (DtSimMessage *msg)
 
virtual void onInit ()
 
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 DtUUID &startingUUID=DtUUID::nullUUID()) const
 
virtual
DtVrfConfigurationFileComposer
createComposer ()
 
virtual void sendQuerySpatialSubdivisionConfigurationRequest (const DtSimulationAddress &backendAddress, DtSpatialSubdivisionType spatialSubdivisionType, DtServerRequestResponseCallbackFcn fcn, void *usr)
 
virtual bool arbitrarySimAddress (const DtEntityType &, DtSimulationAddress &address) const
 
virtual bool addStatementsAndSendPlan (const DtPlan &plan, DtIfPlan &planMsg, const DtSimulationAddress &addr=DtSimSendToAll, int *retiStatus=0, DtString *retsStmt=0) const
 
virtual void processVrfObjectMessage (const DtVrfObjectMessage *objectMsg)
 
virtual void processBackendStatusUpdate (const DtSimulationAddress &)
 
virtual void processLoadScenarioEvent (const makVrfEvents::DtEvent &)
 
virtual void processCloseScenarioEvent (const makVrfEvents::DtEvent &)
 
virtual void initializeGlobalEnvironment (const DtSimulationAddress &environmentSimBackend=DtSimSendToAll)
 
virtual void processGlobalEnvironmentCreated (const makVrf::DtExternalCurrentFrameState *)
 

Static Protected Member Functions

static void joystickControlResponse (DtSimMessage *msg, void *usr)
 
static void deliverRadioMessageCallback (DtSimMessage *msg, void *usr)
 
static void vrfObjectMessageCallback (const DtVrfObjectMessage *objMsg, void *usr)
 
static void backendStatusUpdate (const DtSimulationAddress &, void *)
 
static void globalEnvironmentCreatedCallback (const makVrf::DtExternalCurrentFrameState *, void *)
 

Protected Attributes

DtCommunicationManagermyCommunicationManager
 
DtVrfMessageInterfacemyMsgIf
 
DtVrfTDLMessageInterfacemyVrfTDLMsgIf
 
DtVrfBackendListenermyListener
 
DtCompressedFileTransportermyTransporter
 
DtList myReceivedFiles
 
DtList myReceivedSaves
 
DtU32 myCurrentRequestId
 
DtTime myLastCommandTime
 
DtTime myMaxWaitLoadTime
 
DtTime myMaxWaitSaveTime
 
DtList myBeList
 
std::map< DtString, boolmyBackendReceivedScenario
 
DtList myScenLoadedCbs
 
DtList myBeLoadedCbs
 
DtList myScenSavedOldCbs
 
DtList myScenSavedCbs
 
DtList myScenAboutToBeSavedCbs
 
DtList myScenExportedCbs
 
DtList myScenSavedCheckpointCbs
 
DtList myBeSavedCbs
 
DtPlanCallbackListType myPlanCbs
 
DtStatementCallbackListType myStmtCbs
 
DtPlanCompleteCallbaclListType myPlanCompleteCbs
 
DtHashlist myObjectCbs
 
DtObjectConsoleMessageCallbackListType myObjectConsoleMessageCallbackList
 
DtBackendConsoleMessageCallbackListType myBackendConsoleMessageCallbackList
 
bool myOwnsMessageInterface
 
bool myOwnsVrfTDLMessageInterface
 
DtFilename mySaveName
 
double mySimTimeForCheckpointSave
 
DtFilename myOverlayFilename
 
DtFilename mySelectionGroupsFilename
 
DtFilename mySymbolMapFilename
 
DtFilename myCreateMenuFilename
 
DtFilename myOpdName
 
DtFilename myScenarioExtrasFilename
 
DtScenariomySaveScen
 
DtScenariomyLoadScen
 
DtVrfConfigurationFileComposermyComposer
 
bool myRemapped
 
bool myPreserveMappings
 
bool myDidRemap
 
bool myNeedsGlobalEnvironment
 
DtChangeWeatherCommandmyInitialEnvironment
 
bool myNeedsGlobalDynamicTerrain
 
DtDefaultVrfObjectMessageFactory myVrfObjectMsgFact
 
DtDefaultCondExprFactory myCondExprFact
 
DtDefaultStatementFactory myStmtFact
 
DtDefaultSimReportFactory myReportFact
 
DtDefaultSimTaskFactory myTaskFact
 
DtDefaultSetDataRequestFactory mySetDataFact
 
DtDefaultSimCommandFactory mySimCommandFact
 
DtDefaultAdminContentFactory myAdminContentFact
 
DtString myGuiTerrainDatabaseFilename
 
DtRwKeyValueList myScenarioData
 
DtFilename myTempDirectory
 
DtInetAddr myInetAddr
 
unsigned int myRequestIdCounter
 
DtVrfObjectMessageExecutive myObjectMessageExecutive
 
DtRadioMessageListenermyRadioMessageListener
 
int myStartTimeOfDay
 
int myScenarioExportRequestId
 
DtFilename myExportFile
 
bool myReceivedExportFile
 
bool myAwaitingExportComplete
 
bool myUseDayNightModel
 
JoystickResponseCallbackInfo myJoystickResponseCallbackInfo
 
bool mySaveToZipFile
 
double myRollbackToSimulationTime
 
bool myInRollback
 
std::set< DtSimulationAddress > myBackendsWithObjects
 
std::set< DtSimulationAddress > myBackendsLoaded
 
std::vector< DtStringmyLoadingSimulationModelSets
 
DtScenarioLoadInformationmyScenarioLoadInformation
 
DtRemoteEnvironmentControllermyRemoteEnvironmentController
 
boost::signals2::connection myPostAdvanceFrameConnection
 
DtBackendSelectorManagermyBackendSelectorManager
 

Static Callback Functions

virtual void processGlobalEnvironmentCreated (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid)
 
virtual void commentInteractionCallback (const makVrfEvents::DtEvent &)
 
static void savedScenarioCb (DtSimMessage *msg, void *usr)
 
static void exportScenarioCb (DtSimMessage *msg, void *usr)
 
static void loadedScenarioCb (DtSimMessage *msg, void *usr)
 
static void backendReceivedScenarioCb (DtSimMessage *msg, void *usr)
 
static void receiveFileCb (const DtFilename &filename, void *usr)
 
static void receivedMultiPlanCb (DtSimMessage *msg, void *usr)
 
static void objectCreatedCb (DtSimMessage *msg, void *usr)
 
static void receivedPlanCb (DtSimMessage *msg, void *usr)
 
static void receivedPlanStmtCb (DtSimMessage *msg, void *usr)
 
static void overlayObjectCreatedCallback (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, void *usr)
 
static void globalEnvironmentCreatedCb (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, void *usr)
 
static void indirectArtilleryObjectCreatedCallback (const DtString &name, const DtEntityIdentifier &id, const DtUUID &uuid, void *usr)
 
static void resourcesProcessedCb (DtSimMessage *msg, void *usr)
 
static void spatialSubdivisionConfigurationCb (DtSimMessage *msg, void *usr)
 

Member Typedef Documentation

hashed by request id

Joystick callback information.

Member Enumeration Documentation

Enumerator
AttachNone 
CanAttachAny 

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

Destructor.

Member Function Documentation

virtual DtVrfMessageInterface* DtVrfRemoteController::vrfMessageInterface ( ) const
virtual

Accessor for the message interface.

virtual DtVrfTDLMessageInterface* DtVrfRemoteController::vrfTDLMessageInterface ( ) const
virtual

Accessor for the VRF TDL message interface.

virtual DtVrfConfigurationFileComposer* DtVrfRemoteController::composer ( )
virtual

Returns current composer.

virtual void DtVrfRemoteController::setHostInetAddr ( DtInetAddr  )
virtual

Internet address setting.

virtual DtInetAddr DtVrfRemoteController::hostInetAddr ( ) const
virtual

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 const DtSimulationAddress& DtVrfRemoteController::simulationAddress ( ) const
virtual

Get our simulation address.

virtual int DtVrfRemoteController::sessionId ( ) const
virtual

Return the session ID.

virtual unsigned int DtVrfRemoteController::generateRequestId ( ) const
virtual

Generate a request id. Used internally in functions that generate and send requests, so the callbacks can look for responses with the same ID.

DtNetworkInterfaceManager* DtVrfRemoteController::networkInterfaceManager ( )

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.
makVrfEvents::DtEventManager* DtVrfRemoteController::eventManager ( )

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.
DtCommunicationManager* DtVrfRemoteController::communicationManager ( )
inline

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.
DtRemoteEnvironmentController* DtVrfRemoteController::remoteEnvironmentController ( )
inline

Returns myRemoteEnvironmentController.

DtRemoteEnvironmentController* DtVrfRemoteController::createRemoteEnvironmentController ( )

Instantiates a new DtRemoteEnvironmentController. Override to install a modified controller. Called in init.

DtBackendSelectorManager* DtVrfRemoteController::backendSelectorManager ( ) const
inline

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 void DtVrfRemoteController::init ( DtCommunicationManager exConn,
DtVrfMessageInterface msgInterface = 0,
DtVrfTDLMessageInterface tdlMessageInterface = 0 
)
virtual

Initialize the remote controller. This init function must be called before any other methods can be used.

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

Get a list of known back end simulation addresses.

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

Register backend removal callbacks.

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

Get a list of known back end simulation addresses.

virtual int DtVrfRemoteController::backendsControlState ( ) const
virtual

Get remote back ends' 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 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 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::setTDLMessagesGloballyEnabled ( bool  enabled)
virtual

Sets the global state of sending of tdl messages - 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::setRadarCoverageAltitudeMSL ( bool  )
virtual

Whether or not the 2D radar coverage altitude is in MSL or AGL.

virtual void DtVrfRemoteController::setRadarCoverageAltitudeSettings ( const DtRadarCoverageAltitudeSettings settings)
virtual

Sets the radar coverage altitudes and colors.

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 void DtVrfRemoteController::setRotationThreshold ( DtReal  thresh)
virtual

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::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::processSpatialSubdivisionConfigurationCb ( const DtIfServerRequestResponse rsp)
virtual

Processes a spatial-subdivision-configuration callback. processes this message if the request id is one we generated. This is not used in a normal remote control application, but in a plug in it can be overridden to change or add to processing.

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,
const DtChangeWeatherCommand initialEnvironmentCondition = DtChangeWeatherCommand() 
)
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.

If the weather command is specified that will be used as the default environment conditions for the new scenario. If not specified back end defaults will be used.

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,
const DtChangeWeatherCommand initialEnvironmentCondition = DtChangeWeatherCommand() 
)
virtual

Create a new scenario from a simulation model set files.

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,
const DtChangeWeatherCommand initialEnvironmentCondition = DtChangeWeatherCommand() 
)
virtual

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

Called internally from new scenario methods.

virtual void DtVrfRemoteController::createSimulationObjectGroup ( const DtSimulationAddress &  ,
const DtString simulationObjectGroup,
const DtVector createPosition,
double  offsetRotation,
int  createFlags,
DtForceType  force,
bool  storedInZipFile = false 
)
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 exist the back end will print an error to the console. If there is a simulation object group in the object groups directory with a name <simulationObjectGroup>.sogx use that, else look in sub-directory.

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,
int numberOfObjects = nullptr 
)
virtual

Loads scenario file specified by filename. Parses and transfers configuration files to the appropriate private backends; Then tells backends to load the relevant files.

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

The above will now be done as part of the close scenario call. It is assumed that any data passed in as part of the remapping function can be stored and reused locally without being deleted.

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.

If numberOfObjects is specified will return the number of objects read from the object map file

virtual bool DtVrfRemoteController::loadScenario ( const DtScenarioLoadInformation ,
const std::vector< DtString > &  simulationModelSetFiles = std::vector< DtString >(),
DtString errorString = 0,
int numberOfObjects = nullptr 
)
virtual

Loads scenario file specified by filename. Parses and transfers configuration files to the appropriate private backends; Then tells backends to load the relevant files.

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

The above will now be done as part of the close scenario call. It is assumed that any data passed in as part of the remapping function can be stored and reused locally without being deleted.

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.

If numberOfObjects is specified will return the number of objects read from the object map file

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,
int numberOfObjects = nullptr 
)
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.

Reimplemented in DtExampleRemoteController.

virtual bool DtVrfRemoteController::sendLoadScenarioMessage ( const DtScenario scenario,
const DtSimulationAddress &  addr = DtSimSendToAll,
bool  import = false,
bool  isOrbatEnabled = false,
bool  createGlobalEnv = false,
bool  createGlobalDynamicTerrain = 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.

Set isOrbatEnabled to true if the back-end is enabled to be an orbat server. Only one back-end should be an orbat server during a scenario as, if there are multiple, the front-end could receive redundant messages.

Set createGlobalEnv to true if the back-end should create the global environment. Only one back-end should create a global environment during a scenario as, if there are multiple, the front-end could receive redundant messages.

Set createGlobalDynamicTerrain to true if the back-end should create the global dynamic terrain server. Only one back-end should be a global dynamic terrain server during a scenario as, if there are multiple, the front-end could receive redundant messages.

virtual void DtVrfRemoteController::createGlobalEnvironment ( bool  )
virtual

Create/destroy global environment (if not already)

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

Loads scenario file specified by filename. Parses and transfers configuration files to the appropriate private backends; Then tells backends to load the relevant files.

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

The above will now be done as part of the close scenario call. It is assumed that any data passed in as part of the remapping function can be stored and reused locally without being deleted.

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.

If numberOfObjects is specified will return the number of objects read from the object map file

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

Loads scenario file specified by filename. Parses and transfers configuration files to the appropriate private backends; Then tells backends to load the relevant files.

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

The above will now be done as part of the close scenario call. It is assumed that any data passed in as part of the remapping function can be stored and reused locally without being deleted.

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.

If numberOfObjects is specified will return the number of objects read from the object map file

virtual bool DtVrfRemoteController::rollbackToSnapshot ( double  simTime)
virtual

Rolls back to the current snapshot given the scenario time to roll back to. If this is a multi-backend simulation, this code will not immediately do the rollback. It will instead issue a message to all the back ends to remove all objects in the simulation, and, when the remote controller is notified that the back ends have processed this message, then it will issue the rollback command. Will return false if already in the process of a rollback.

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

Loads scenario file specified by filename. Parses and transfers configuration files to the appropriate private backends; Then tells backends to load the relevant files.

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

The above will now be done as part of the close scenario call. It is assumed that any data passed in as part of the remapping function can be stored and reused locally without being deleted.

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.

If numberOfObjects is specified will return the number of objects read from the object map file

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

Loads scenario file specified by filename. Parses and transfers configuration files to the appropriate private backends; Then tells backends to load the relevant files.

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

The above will now be done as part of the close scenario call. It is assumed that any data passed in as part of the remapping function can be stored and reused locally without being deleted.

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.

If numberOfObjects is specified will return the number of objects read from the object map file

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

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 const DtRwKeyValueList& DtVrfRemoteController::scenarioData ( ) const
virtual

Set the scenario data used to save with the scenario.

virtual void DtVrfRemoteController::setScenarioData ( const DtRwKeyValueList )
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 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,
bool  saveToZip = false,
bool  deleteExistingZip = true,
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 delete existing zip is false files will be added with the same name to the zip file.

If simTime is not -1 will attempt to save an in memory snapshot at the given sim time (or the closest one to it)

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::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 bool DtVrfRemoteController::saveScenarioCheckpoint ( const DtFilename &  filename,
double  simTime,
bool  saveToZip = false,
DtString saveError = 0 
)
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::createGlobalDynamicTerrain ( bool  )
virtual

Create/destroy global dynamic terrain (if not already)

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

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

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 void DtVrfRemoteController::addScenarioAboutToBeSavedCallback ( DtScenarioAboutToBeSavedCallbackFcn  fcn,
void *  usr 
)
virtual

Register callback to be invoked when a scenario file is about to be saved.

virtual void DtVrfRemoteController::removeScenarioAboutToBeSavedCallback ( DtScenarioAboutToBeSavedCallbackFcn  fcn,
void *  usr 
)
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 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

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

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

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

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

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

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 void DtVrfRemoteController::setScenarioExtrasFilename ( const DtFilename &  extras)
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 const DtFilename& DtVrfRemoteController::scenarioExtrasFilename ( ) const
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 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

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

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

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 void DtVrfRemoteController::saveParameterDb ( const DtFilename &  filename)
virtual

Save currently loaded parameter database in backend to file.

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,
bool  saveAsZip = false 
)
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::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::reinitializeScenario ( )
virtual

Send a message to all back-ends to reinitialize the current scenario by deleting and recreating all scenario objects without restoring PSR context in controllers.

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

If 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

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

virtual void DtVrfRemoteController::rewind ( )
virtual

For the rewind, if there is more then one backend with a loaded scenario, will instead close and reload the scenario.

virtual void DtVrfRemoteController::exit ( const DtSimulationAddress &  addr = DtSimSendToAll) const
virtual

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

virtual void DtVrfRemoteController::step ( ) const
virtual

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

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

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

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

Internal function 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::backendReceivedScenario ( const DtSimulationAddress &  addr,
unsigned int  requestId 
)
virtual

Internal function invoked when a backend notifies us that it has received the given scenario information. Users should never need to call this function.

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

Starts the global dynamic terrain controller on one of the available simulation engines. If DtSimSendToAll passed, then an arbitrary sim engine is chosen to simulate the process dynamic terrain changes. Users should never need to call this function.

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

Internal function 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 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 void DtVrfRemoteController::createAerodrome ( DtString  airportCode,
const DtForceType &  forceType = DtForceNeutral,
const DtSimulationAddress &  addr = DtSimSendToAll 
)
virtual

Given an aerodrome airport code, create that aerodrome. If the aerodrome does not exist then the aerodrome will not be created. The airport code is case sensitive, so, the incoming string will be uppercased.

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

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,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
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 DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

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,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
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 DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

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,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
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 DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

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,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
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 DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

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,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
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 DtUUID startingUUID = DtUUID::nullUUID() 
) const
virtual

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,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
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 DtUUID attachTo = DtUUID::nullUUID(),
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< intDtString >(),
DtOverlayCreatedCallbackFcn  fcn = 0,
const DtSimulationAddress &  addr = DtSimSendToAll,
unsigned int  rId = 0,
std::list< DtAdminContent * > *  initialAdminContent = 0,
std::list< DtSimInterfaceContent * > *  initialInterfaceContent = 0,
const DtUUID uuidForCreation = DtUUID::nullUUID() 
)
virtual

Create an overlay object. 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::processOverlayObjectCreated ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
DtVrfOverlayObjectModify modifications 
)
virtual

processes a overlay-object-created callback. processes this message if the request id is one we generated. Override to change or add to processing.

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::createIndirectArtillery ( const DtVrfIndirectArtilleryObjectModify params,
const DtSimulationAddress &  addr 
)
virtual

Create an indirect fire object.

virtual void DtVrfRemoteController::processIndirectArtilleryObjectCreated ( const DtString name,
const DtEntityIdentifier &  id,
const DtUUID uuid,
DtVrfIndirectArtilleryObjectModify modifications 
)
virtual

processes a indirect-artillery-created callback. processes this message if the request id is one we generated. Override to change or add to processing.

virtual void DtVrfRemoteController::sendVrfIndirectArtilleryObjectModifyMsg ( const DtSimulationAddress &  addr,
const DtUUID uuid,
const DtVrfIndirectArtilleryObjectModify mod 
) const
virtual

Given an aerodrome airport code, create that aerodrome. If the aerodrome does not exist then the aerodrome will not be created. The airport code is case sensitive, so, the incoming string will be uppercased.

virtual void DtVrfRemoteController::createObject ( const DtEntityType &  type,
DtForceType  force,
DtList *  vertices,
const DtString name,
const DtSimulationAddress &  addr,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
virtual

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

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

Internal function that is called when an object is created. Users should not need to call this function. Calls any user registered callbacks.

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

Delete VR-Force's object by name.

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 DtUUID startingUUID = DtUUID::nullUUID() 
) 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,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
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,
const DtUUID startingUUID = DtUUID::nullUUID(),
bool  createSubordinates = false 
)
virtual

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

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 DtUUID startingUUID = DtUUID::nullUUID() 
) 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,
const DtUUID startingUUID = DtUUID::nullUUID() 
)
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

Set label of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Sets the overlay parent of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate. 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) of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Set location (geocentric coordinates) of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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) of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Set force of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Spot reports of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate. Requests that spot reports for the specified entity be sent or turned off.

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

TDL Messaging of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Engagement reports of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate. 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 of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Set rules of engagement of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate. 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) of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Set ordered speed (in meters per second) of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Set current speed (in meters per second) of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Set target of an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Set superior of an existing entity. 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 of an existing entity.

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

Set concealed for an existing entity or aggregate. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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

Set emitter.

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

Set emergency beacon.

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 an existing entity or aggregate to destroyed. Note: if this command is specified for an aggregate leader, the change will apply to the entire aggregate.

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.

void DtVrfRemoteController::setSystemEnabled ( const DtUUID name,
const DtString systemName,
bool  val,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const

Set system enabled.

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::sendSetDataMsg ( const DtUUID recipient,
DtSetDataRequest msg,
const DtSimulationAddress &  addr,
bool  sendImmediately = false 
) const
virtual

General set data message. The recipient is the name of the object to receive the set message. If sendImmediately is set to true, the message will not be put in a queue and sent immediately.

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< intDtString >(),
std::list< DtAdminContent * > *  initialAdminContent = 0,
std::list< DtSimInterfaceContent * > *  initialInterfaceContent = 0,
const DtString overlayParent = "",
const DtUUID uuidForCreation = DtUUID::nullUUID() 
) const
virtual

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. Note that the userData is only valid for objects that are environmental (control) objects.

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::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::moveAlongRoute ( const DtUUID entityName,
const DtUUID routeName,
const DtSimulationAddress &  addr = DtSimSendToAll 
) const
virtual

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::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::receivedPlan ( const DtUUID uuid,
bool  isGlobal,
const std::vector< DtSimStatement * > &  statements 
)
virtual

Internal function invoked when a plan is received. This calls functions registered in the subscribePlan function. Users should not need to call this function.

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

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

virtual void DtVrfRemoteController::processReceivedMultiPlan ( DtIfMultiplePlanResponse msg)
virtual

processes a multi-plan received callback. processes this message if the request id is one we generated. Override to change or add to processing.

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::receivedPlanStmt ( const DtUUID uuid,
bool  isGlobal,
DtPlanStatus  planStatus 
)
virtual

Internal function 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. Users should not have to call this function.

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::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::requestGlobalPlansList ( const DtSimulationAddress &  addr)
virtual

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

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,
bool  sendImmediately = false 
) 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. If sendImmediately is set to true, the message will not be put in a queue and sent immediately.

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

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::disembarkAllObjects ( const DtSimulationAddress &  addr,
const DtUUID entity 
)
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::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 void DtVrfRemoteController::requestIndirectArtilleryInformation ( const DtUUID )
virtual

Request indirect artillery information by environmental name.

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 void DtVrfRemoteController::requestResources ( const DtUUID uuid = DtUUID::nullUUID(),
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::processResourcesProcessedCb ( const DtIfServerRequestResponse rsp)
virtual

processes a resources-processed callback. processes this message if the request id is one we generated. Override to change or add to processing.

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

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

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

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

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

virtual void DtVrfRemoteController::processCommentInteraction ( const makVrfEvents::DtCommentEvent inter)
virtual

Processes an incoming comment interaction. Object console messages are sent via comment interactions.

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

Requests joystick information (supported function groups and functions) for the given entity. Supplied function will be called (with user data) when information is retrieved If sendImmediately is set to true, the message will not be put in a queue and sent immediately.

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

Takes control of the given entity for the supplied function group(s) for the purposes of joystick control If sendImmediately is set to true, the message will not be put in a queue and sent immediately.

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

Releases control of the given entity for the given function groups. No function groups means release control of all If sendImmediately is set to true, the message will not be put in a queue and sent immediately.

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

Sends a joystick control message to the given entity for the given function group and function using the supplied value If sendImmediately is set to true, the message will not be put in a queue and sent immediately.

virtual DtSimulationStatus DtVrfRemoteController::simulationStatus ( ) const
virtual

Add/remove a static callback method for notification when the simulation status as a whole changes.

virtual void DtVrfRemoteController::addSimulationStatusChangedCallback ( DtSimulationStatusChangedCallbackFcn  ,
void *   
)
virtual

Add/remove a static callback method for notification when the simulation status as a whole changes.

virtual void DtVrfRemoteController::removeSimulationStatusChangedCallback ( DtSimulationStatusChangedCallbackFcn  ,
void *   
)
virtual

Add/remove a static callback method for notification when the simulation status as a whole changes.

virtual DtVrfObjectMessageFactory* DtVrfRemoteController::vrfObjectMsgFactory ( )
virtual
virtual DtCondExprFactory* DtVrfRemoteController::condExprFactory ( )
virtual
virtual DtStatementFactory* DtVrfRemoteController::stmtFactory ( )
virtual
virtual DtSimReportFactory* DtVrfRemoteController::reportFactory ( )
virtual
virtual DtSimTaskFactory* DtVrfRemoteController::taskFactory ( )
virtual
virtual DtSetDataRequestFactory* DtVrfRemoteController::setDataFactory ( )
virtual
virtual DtSimCommandFactory* DtVrfRemoteController::simCommandFactory ( )
virtual
virtual DtAdminContentFactory* DtVrfRemoteController::adminContentFactory ( )
virtual
virtual void DtVrfRemoteController::createOrSetMessageInterface ( DtVrfMessageInterface iface)
virtual
virtual void DtVrfRemoteController::createOrSetVrfTDLMessageInterface ( DtVrfTDLMessageInterface iface)
virtual
virtual void DtVrfRemoteController::tick ( )
virtual

ONLY call this method if you are not prepared to call beginFrame and advanceFrame on the communication manager. If you notice that you are not receiving messages this might be because your code is simply calling drain input on the exercise connection that was set to the vrlink version of this controller (in old remote control applications), in which case change the exConn->drainInput to a tick on this controller. Calling this method will also drain input on the exercise connection.

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::backendReceivedScenarioCb ( DtSimMessage msg,
void *  usr 
)
static

Invoked when a backend notifies us that it has received 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.

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.

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

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

Invoked when a comment interaction is received from the network. Calls processCommentInteraction().

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.

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

Invoked when a resource request is called via requestResources.

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::commentInteractionCallback ( const makVrfEvents::DtEvent )
virtual

Invoked when a comment interaction is received from the network. Calls processCommentInteraction().

virtual void DtVrfRemoteController::registerEventManagerCallbacks ( )
protectedvirtual
virtual void DtVrfRemoteController::unregisterEventManagerCallbacks ( )
protectedvirtual
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. 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 DtUUID startingUUID = DtUUID::nullUUID() 
) const
protectedvirtual

Fills out and sends an aggregate-as message.

virtual DtVrfConfigurationFileComposer* DtVrfRemoteController::createComposer ( )
protectedvirtual

Initializes the myComposer variable.

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 ( const DtEntityType &  ,
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::backendStatusUpdate ( const DtSimulationAddress &  ,
void *   
)
staticprotected

Used by rollback, once there are no longer any backends with entities give the actual rollback.

virtual void DtVrfRemoteController::processBackendStatusUpdate ( const DtSimulationAddress &  )
protectedvirtual
virtual void DtVrfRemoteController::processLoadScenarioEvent ( const makVrfEvents::DtEvent )
protectedvirtual
virtual void DtVrfRemoteController::processCloseScenarioEvent ( const makVrfEvents::DtEvent )
protectedvirtual
virtual void DtVrfRemoteController::initializeGlobalEnvironment ( const DtSimulationAddress &  environmentSimBackend = DtSimSendToAll)
protectedvirtual

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. Users should never need to call this function.

static void DtVrfRemoteController::globalEnvironmentCreatedCallback ( const makVrf::DtExternalCurrentFrameState ,
void *   
)
staticprotected

Invoked when global environment created. If there is an environment to send for a new scenario do that now.

virtual void DtVrfRemoteController::processGlobalEnvironmentCreated ( const makVrf::DtExternalCurrentFrameState )
protectedvirtual

Member Data Documentation

boost::signals2::signal<void ()> DtVrfRemoteController::signal_initialized

Signal sent after onInit is called.

DtCommunicationManager* DtVrfRemoteController::myCommunicationManager
protected
DtVrfMessageInterface* DtVrfRemoteController::myMsgIf
protected
DtVrfTDLMessageInterface* DtVrfRemoteController::myVrfTDLMsgIf
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
std::map<DtString, bool> DtVrfRemoteController::myBackendReceivedScenario
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::myScenAboutToBeSavedCbs
protected

list of any preferred new-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::myOwnsMessageInterface
protected
bool DtVrfRemoteController::myOwnsVrfTDLMessageInterface
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::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.

DtChangeWeatherCommand* DtVrfRemoteController::myInitialEnvironment
protected

Set to non-null if needing to also set the global environment.

bool DtVrfRemoteController::myNeedsGlobalDynamicTerrain
protected

Set to true if needs to create the object to manage global dynamic terrain.

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 back 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 scenario.

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.

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
JoystickResponseCallbackInfo DtVrfRemoteController::myJoystickResponseCallbackInfo
protected
bool DtVrfRemoteController::mySaveToZipFile
protected

Whether or not the pending save is saved to a zip file.

double DtVrfRemoteController::myRollbackToSimulationTime
protected

If rolling back, the rollback time.

bool DtVrfRemoteController::myInRollback
protected
std::set<DtSimulationAddress> DtVrfRemoteController::myBackendsWithObjects
protected
std::set<DtSimulationAddress> DtVrfRemoteController::myBackendsLoaded
protected

Used for loading a scenario if there are any backends opened.

std::vector<DtString> DtVrfRemoteController::myLoadingSimulationModelSets
protected
DtScenarioLoadInformation* DtVrfRemoteController::myScenarioLoadInformation
protected
DtRemoteEnvironmentController* DtVrfRemoteController::myRemoteEnvironmentController
protected

Used to monitor and change the weather state.

boost::signals2::connection DtVrfRemoteController::myPostAdvanceFrameConnection
protected
DtBackendSelectorManager* DtVrfRemoteController::myBackendSelectorManager
protected

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

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)