VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vrfRemoteController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
14 #include <vrfExtProtocol/objectType.h>
17 #include "vrfmsgs/ifSaveComplete.h"
20 #include "vrfutil/scenario.h"
21 #include "vrftasks/simTask.h"
22 #include "vrfplan/plan.h"
23 #include <vrfExtProtocol/objectTypeEnums.h>
37 
39 #include <vl/commentInteraction.h>
40 #include <vl/exerciseConn.h>
41 #include <vl/hostStructs.h>
42 #include <vlpi/disEnums.h>
43 #include <vlpi/appearance.h>
44 #include <vlutil/vlHashlist.h>
45 
47 #include <list>
48 
49 class DtAdminContent;
50 class DtBackendMap;
51 class DtAddressMap;
55 class DtIfLoadScenario;
56 class DtIfPlan;
60 class DtSettingsObject;
61 class DtReflectedEnvironmentProcessList;
63 
64 typedef void (*DtScenarioCallbackFcn)(void* usr);
66 
68 typedef bool (*DtBackendRemappingFcn)(DtBackendMap* map, void* usr);
71 typedef bool (*DtPreserveMappingsFcn)(void* usr);
72 
73 typedef bool (*DtLoadBalancingFcn)(DtAddressMap* map, const DtList* backends,
74  void* usr);
75 
76 typedef void (*DtBackendSaveCallbackFcn)
77  (const DtSimulationAddress& addr, DtSaveResult result, void * usr);
78 
79 typedef void (*DtScenarioSavedCallbackFcn)
80  (DtSaveResult result, const DtString& sError, void* usr);
81 
82 typedef void (*DtVrfObjectCreatedCallbackFcn)
83  (const DtString& name, const DtEntityIdentifier& id, void* usr);
84 
85 typedef void (*DtOverlayCreatedCallbackFcn)
86  (const DtString& name, const DtEntityIdentifier& id, DtVrfOverlayObjectModify* usr);
87 
89  (const DtString& name, const DtEntityIdentifier& id,
90  void* usr);
91 
93  (const DtEntityIdentifier& id, int notifyLevel, const DtString& message,
94  void* usr);
95 
97  (const DtSimulationAddress& id, int notifyLevel, const DtString& message,
98  void* usr);
99 
104  (const DtIfServerRequestResponse& response, void* usr);
105 
107 {
108 public:
109  PlanCbInfo(const DtString& n, bool global, DtPlanCallbackFcn f, void* usr) :
110  name(n), isGlobal(global), fcn(f), data(usr) {}
112  bool operator==(const PlanCbInfo& orig) const
113  {
114  return (name == orig.name && fcn == orig.fcn && data == orig.data
115  && isGlobal == orig.isGlobal);
116  }
117 
119  bool isGlobal;
121  void* data;
122 };
123 
125 {
126 public:
127  StmtCbInfo(const DtString& n, bool global,
128  DtPlanStatementCallbackFcn f, void* usr) :
129  name(n), isGlobal(global) , fcn(f), data(usr) {}
131  bool operator==(const StmtCbInfo& orig) const
132  {
133  return (name == orig.name && fcn == orig.fcn && data == orig.data &&
134  isGlobal == orig.isGlobal);
135  }
136 
139  bool isGlobal;
140  void* data;
141 };
142 
144 {
145 public:
146  PlanCompleteCbInfo(const DtString& n, bool global,
147  DtPlanCompleteCallbackFcn f, void* usr) :
148  name(n), isGlobal(global), fcn(f), data(usr) {}
150  bool operator==(const PlanCompleteCbInfo& orig) const
151  {
152  return (name == orig.name && fcn == orig.fcn && data == orig.data && isGlobal == orig.isGlobal);
153  }
154 
157  bool isGlobal;
158  void* data;
159 };
160 
176 {
177 public:
179  AttachNone=0,
181  AttachEven
182  };
183 
184 public:
185 
191  DtVrfRemoteController(int receivePort = 9000);
192 
203  virtual void init(DtExerciseConn* exConn,
204  DtReflectedEnvironmentProcessList* rel = NULL);
205  virtual void init(DtVrfMessageInterface* msgIf,
206  DtReflectedEnvironmentProcessList* rel = NULL);
208 
209  virtual ~DtVrfRemoteController();
210 
212  virtual DtVrfMessageInterface* vrfMessageInterface() const;
213 
215  virtual const DtSimulationAddress& simulationAddress() const;
216  virtual int sessionId() const;
217 
220  virtual double simTime(const DtSimulationAddress* a = NULL) const;
221 
223  virtual const DtList& backends() const;
224 
227  virtual const DtList& pendingBackends() const;
228 
230  virtual DtVrfBackendListener* backendListener() const;
231 
233  virtual void addBackendDiscoveryCallback(
234  DtBackendCallbackFcn fcn, void* usr);
235  virtual void removeBackendDiscoveryCallback(
236  DtBackendCallbackFcn fcn, void* usr);
237 
239  virtual void addBackendRemovalCallback(
240  DtBackendCallbackFcn fcn, void* usr);
241  virtual void removeBackendRemovalCallback(
242  DtBackendCallbackFcn fcn, void* usr);
243 
247  virtual int backendsControlState() const;
248 
250  virtual int numberBackendsLoaded() const;
251 
254  virtual bool allBackendsReady() const;
255 
257  virtual bool backendLoaded(const DtSimulationAddress& addr) const;
258 
261  virtual void modifyBackEndSetting(const DtSettingsObject* setting,
262  const DtSimulationAddress& addr = DtSimSendToAll);
263 
274  virtual void requestBackEndSetting(std::string name,
276  const DtSimulationAddress& addr = DtSimSendToAll);
277 
280  virtual void setSpotReportsGloballyEnabled(bool enabled);
281 
284  virtual void setEngagementReportsGloballyEnabled(bool enabled);
285 
288  virtual void setDRThresholds(double translation, double rotation);
289 
291  virtual void setCommModelSettings(bool useExternalComms);
292 
294  virtual void setRoadDrivingSettings(bool driveOnLeft);
295 
298  virtual void setAutomaticAggregationDisaggregationEnabled(bool enabled);
299 
304  virtual void setPublishAggregateFormationRoutes(bool yesNo);
305 
306  //-------------------------------------------------------
308  //-------------------------------------------------------
309 
332  virtual bool loadScenario(const DtFilename& filename,
333  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
334  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
335  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
336  ComponentAttachmentRule compAttachRule = DtVrfRemoteController::AttachNone,
337  DtString* errorString = 0);
338 
347  virtual bool loadScenario(const DtScenario& scenario,
348  DtBackendRemappingFcn fcn = 0, void* usrRemapping = 0,
349  DtLoadBalancingFcn = 0, void* usrBalancing = 0,
350  const std::vector<DtString>& simulationModelSetFiles = std::vector<DtString>(),
351  DtString* errorString = 0);
352 
357  virtual bool importScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
358  const std::map<std::string, std::string>& importData);
359 
362  virtual bool exportScenarioDescriptionFile(const DtFilename& file, DtSimulationAddress, const DtString& format,
363  const std::map<std::string, std::string>& importData);
364 
368  virtual DtString guiTerrainDatabaseFilename() const;
369  virtual void setGuiTerrainDatabaseFilename(DtString db);
370 
372  virtual const DtRwKeyValueList& scenarioData() const;
373  virtual void setScenarioData(const DtRwKeyValueList&);
374 
379  virtual bool newScenario(
380  const DtFilename& dbname,
381  const DtFilename& guidbname,
382  const DtFilename& opdname = DtFilename::nullFilename(),
383  const DtFilename& physicalWorldName = DtFilename::nullFilename(),
384  const DtScenario* baseScenario = 0,
385  time_t startTimeOfDay = 12 * 3600,
386  DtString* errorString = 0);
387 
389  virtual bool newScenario(
390  const DtFilename& dbname,
391  const DtFilename& guidbname,
392  const std::vector<DtString>& simulationModelSetFiles,
393  const DtScenario* baseScenario = 0,
394  time_t startTimeOfDay = 12 * 3600,
395  DtString* errorString = 0);
396 
402  virtual bool sendLoadScenarioMessage(
403  const DtScenario& scenario,
404  const DtSimulationAddress& addr = DtSimSendToAll) const;
405 
408  virtual DtIfLoadScenario* createLoadScenarioMessage() const;
409 
412  virtual void addBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
413  virtual void removeBackendLoadedCallback(DtBackendCallbackFcn fcn, void* usr);
414 
417  virtual void addScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
418  virtual void removeScenarioLoadedCallback(DtScenarioCallbackFcn fcn, void* usr);
419 
432  virtual bool saveScenario(const DtFilename& saveName,
433  DtPreserveMappingsFcn fcn = 0, void* userData = 0, DtString* error = 0);
434 
437  virtual void sendSaveScenarioMessage(const DtSimulationAddress& addr = DtSimSendToAll) const;
438 
441  virtual void addBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
442  virtual void removeBackendSavedCallback(DtBackendSaveCallbackFcn fcn, void* usr);
443 
448  virtual void addScenarioSavedCallback(
449  DtScenarioCallbackFcn fcn, void* usr);
450  virtual void removeScenarioSavedCallback(
451  DtScenarioCallbackFcn fcn, void* usr);
452 
455  virtual void addScenarioExportedCallback(
456  DtScenarioSavedCallbackFcn fcn, void* usr);
457  virtual void removeScenarioExportedCallback(
458  DtScenarioSavedCallbackFcn fcn, void* usr);
459 
463  virtual void addScenarioSavedCallback(
464  DtScenarioSavedCallbackFcn fcn, void* usr);
465  virtual void removeScenarioSavedCallback(
466  DtScenarioSavedCallbackFcn fcn, void* usr);
467 
469  virtual void closeScenario(const DtSimulationAddress& addr = DtSimSendToAll,
470  const DtFilename& databaseToOpen = "");
471 
476  virtual void run(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
477  virtual void pause(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
478 
479  virtual void rewind() const;
480  virtual void exit() const;
481  virtual void step() const;
482  virtual void setTimeMultiplier(double multiplier) const;
484 
493  virtual void setOpdSaveName(const DtFilename& f);
494  virtual const DtFilename& opdSaveName() const;
496 
501  virtual void setMaxWaitSaveTime(DtTime t);
502  virtual DtTime maxWaitSaveTime() const;
504 
509  virtual void setMaxWaitLoadTime(DtTime t);
510  virtual DtTime maxWaitLoadTime() const;
512 
517  virtual void setOverlayFilename(const DtFilename& overlay);
518  virtual const DtFilename& overlayFilename() const;
520 
525  virtual void setHostilityFilename(const DtFilename& hostilty);
526  virtual const DtFilename& hostilityFilename() const;
528 
529  virtual void setScenarioExtrasFilename(const DtFilename& extras);
530  virtual const DtFilename& scenarioExtrasFilename() const;
531 
536  virtual void setSelectionGroupsFilename(const DtFilename& sel);
537  virtual const DtFilename& selectionGroupsFilename() const;
539 
544  virtual void setSymbolMapFilename(const DtFilename& overlay);
545  virtual const DtFilename& symbolMapFilename() const;
547 
552  virtual void setCreateMenuFilename(const DtFilename& overlay);
553  virtual const DtFilename& createMenuFilename() const;
555 
557  virtual void saveParameterDb(const DtFilename& filename);
558 
559  //-------------------------------------------------------
561  //-------------------------------------------------------
562 
564  virtual void deleteObject(const DtString& name,
565  const DtSimulationAddress& addr = DtSimSendToAll) const;
566 
568  virtual void deleteObject(const DtEntityIdentifier& id,
569  const DtSimulationAddress& addr = DtSimSendToAll) const;
570 
571  //-------------------------------------------------------
573  //-------------------------------------------------------
574 
576 
581  virtual void createWaypoint(
582  const DtVector& geocentricPosition,
583  const DtString& uniqueName = DtString::nullString(),
584  const DtString& label = DtString::nullString(),
585  const DtSimulationAddress& addr = DtSimSendToAll) const;
586 
590  virtual void createWaypoint(
591  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
592  const DtVector& geocentricPosition,
593  const DtString& uniqueName = DtString::nullString(),
594  const DtString& label = DtString::nullString(),
595  const DtSimulationAddress& addr = DtSimSendToAll);
596 
598  virtual void modifyWaypoint(
599  const DtEntityIdentifier& uniqueId,
600  DtString* uniqueName = 0,
601  DtString* label = 0,
602  DtVector* geocentricPosition = 0,
603  const DtSimulationAddress& addr = DtSimSendToAll) const;
604 
606 
611  virtual void createRoute(
612  const DtList& vertices,
613  const DtString& uniqueName = DtString::nullString(),
614  const DtString& label = DtString::nullString(),
615  const DtSimulationAddress& addr = DtSimSendToAll) const;
616 
620  virtual void createRoute(
621  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
622  const DtList& vertices,
623  const DtString& uniqueName = DtString::nullString(),
624  const DtString& label = DtString::nullString(),
625  const DtSimulationAddress& addr = DtSimSendToAll) ;
626 
628  virtual void modifyRoute(
629  const DtEntityIdentifier& uniqueId,
630  DtString* uniqueName = 0,
631  DtString* label = 0,
632  DtList* vertices = 0,
633  const DtSimulationAddress& addr = DtSimSendToAll) const;
634 
636 
641  virtual void createPhaseLine(
642  const DtVector& dbPoint1,
643  const DtVector& dbPoint2,
644  const DtString& uniqueName = DtString::nullString(),
645  const DtString& label = DtString::nullString(),
646  const DtSimulationAddress& addr = DtSimSendToAll) const;
647 
651  virtual void createPhaseLine(
652  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
653  const DtVector& dbPoint1,
654  const DtVector& dbPoint2,
655  const DtString& uniqueName = DtString::nullString(),
656  const DtString& label = DtString::nullString(),
657  const DtSimulationAddress& addr = DtSimSendToAll) ;
658 
660  virtual void modifyPhaseLine(
661  const DtEntityIdentifier& uniqueId,
662  DtString* uniqueName = 0,
663  DtString* label = 0,
664  DtVector* newDbPoint1 = 0,
665  DtVector* newDbPoint2 = 0,
666  const DtSimulationAddress& addr = DtSimSendToAll) const;
667 
669 
675  virtual void createControlArea(
676  const DtList& vertices,
677  const DtString& uniqueName = DtString::nullString(),
678  const DtString& label = DtString::nullString(),
679  const DtSimulationAddress& addr = DtSimSendToAll) const;
680 
684  virtual void createControlArea(
685  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
686  const DtList& vertices,
687  const DtString& uniqueName = DtString::nullString(),
688  const DtString& label = DtString::nullString(),
689  const DtSimulationAddress& addr = DtSimSendToAll) ;
690 
692  virtual void modifyControlArea(
693  const DtEntityIdentifier& uniqueId,
694  DtString* uniqueName = 0,
695  DtString* label = 0,
696  DtList* newVertices = 0,
697  const DtSimulationAddress& addr = DtSimSendToAll) const;
698 
700 
706  virtual void createObstacle(
707  const DtList& vertices,
708  const DtString& uniqueName = DtString::nullString(),
709  const DtString& label = DtString::nullString(),
710  const DtSimulationAddress& addr = DtSimSendToAll) const;
711 
715  virtual void createObstacle(
716  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
717  const DtList& vertices,
718  const DtString& uniqueName = DtString::nullString(),
719  const DtString& label = DtString::nullString(),
720  const DtSimulationAddress& addr = DtSimSendToAll) ;
721 
723  virtual void modifyObstacle(
724  const DtEntityIdentifier& uniqueId,
725  DtString* uniqueName = 0,
726  DtString* label = 0,
727  DtList* newVertices = 0,
728  const DtSimulationAddress& addr = DtSimSendToAll) const;
729 
731 
738  virtual void createDisaggregationArea(
739  const DtList& vertices,
740  const DtString& uniqueName = DtString::nullString(),
741  const DtString& label = DtString::nullString(),
742  const DtSimulationAddress& addr = DtSimSendToAll) const;
743 
748  virtual void createDisaggregationArea(
749  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
750  const DtList& vertices,
751  const DtString& uniqueName = DtString::nullString(),
752  const DtString& label = DtString::nullString(),
753  const DtSimulationAddress& addr = DtSimSendToAll) ;
754 
756  virtual void modifyDisaggregationArea(
757  const DtEntityIdentifier& uniqueId,
758  DtString* uniqueName = 0,
759  DtString* label = 0,
760  DtList* newVertices = 0,
761  const DtSimulationAddress& addr = DtSimSendToAll) const;
762 
776  virtual void createOverlayObject(
777  const DtEntityType& type,
778  const DtList& vertices,
779  const DtForceType& force,
780  const DtString& name,
781  const DtString& label,
782  int color,
783  const DtString& parentName,
784  bool projection,
785  bool closedFigure,
786  const DtAppearance& appearance = DtAppearance::nullAppearance(),
787  const DtString& attachTo = DtString(),
788  char* userData = 0,
789  int dataSize = 0,
790  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
791  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
793  const DtSimulationAddress& addr = DtSimSendToAll,
794  unsigned int rId = 0,
795  std::list<DtAdminContent*>* initialAdminContent = 0,
796  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0);
797 
798  virtual void createIndirectArtillery(
799  const DtVrfIndirectArtilleryObjectModify * params,
800  const DtSimulationAddress& addr);
801  //-------------------------------------------------------
803  //-------------------------------------------------------
804 
806  virtual void createObject(
807  const DtEntityType& type,
808  DtForceType force,
809  DtList* vertices,
810  const DtString& name,
811  const DtSimulationAddress& addr);
812 
814  virtual void createEntity(
815  const DtEntityType& type,
816  const DtVector& geocentricPosition,
817  DtForceType force,
818  DtReal heading,
819  const DtString& uniqueName = DtString::nullString(),
820  const DtString& label = DtString::nullString(),
821  const DtSimulationAddress& addr = DtSimSendToAll,
822  bool groundClamp = true) const;
823 
827  virtual void createEntity(
828  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
829  const DtEntityType& type,
830  const DtVector& geocentricPosition,
831  DtForceType force,
832  DtReal heading,
833  const DtString& uniqueName = DtString::nullString(),
834  const DtString& label = DtString::nullString(),
835  const DtSimulationAddress& addr = DtSimSendToAll,
836  bool groundClamp = true);
837 
838  virtual void createAggregate(
839  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
840  const DtEntityType& type,
841  const DtVector& geocentricPosition,
842  DtForceType force,
843  DtReal heading,
844  const DtString& uniqueName,
845  const DtString& label = DtString::nullString(),
846  const DtSimulationAddress& addr = DtSimSendToAll,
847  DtAggregateState initialAggregateState = DtDisaggregated);
848 
850  virtual void createAggregate(
851  const DtEntityType& type,
852  const DtVector& geocentricPosition,
853  DtForceType force,
854  DtReal heading,
855  DtList* entityNames = 0,
856  const DtSimulationAddress& addr = DtSimSendToAll,
857  DtAggregateState initialAggregateState = DtDisaggregated,
858  unsigned int requestId = 0) const;
859 
863  virtual void createAggregate(
864  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
865  const DtEntityType& type,
866  const DtVector& geocentricPosition,
867  DtForceType force,
868  DtReal heading,
869  DtList* entityNames = 0,
870  const DtSimulationAddress& addr = DtSimSendToAll,
871  DtAggregateState initialAggregateState = DtDisaggregated) ;
872 
875  virtual void addToOrganization(
876  const DtEntityIdentifier& objectId,
877  const DtEntityIdentifier& newSuperiorId,
878  const DtSimulationAddress& addr = DtSimSendToAll);
879 
883  virtual void addToForceLevelOrganization(
884  const DtEntityIdentifier& orjectId,
885  const DtSimulationAddress& addr = DtSimSendToAll);
886 
889  virtual void removeFromOrganization(
890  const DtEntityIdentifier& objectId,
891  const DtSimulationAddress& addr = DtSimSendToAll);
892 
898 
900  virtual void setLabel(
901  const DtEntityIdentifier& id, const DtString& label,
902  const DtSimulationAddress& addr = DtSimSendToAll) const;
903 
905  virtual void setOverlayParent(
906  const DtEntityIdentifier& id, const DtString& label,
907  const DtSimulationAddress& addr = DtSimSendToAll) const;
908 
910  virtual void setAltitude(
911  const DtString& name, double altitude, bool aboveGroundLevel = false,
912  const DtSimulationAddress& addr = DtSimSendToAll) const;
913 
915  virtual void setLocation(
916  const DtString& name, DtVector coord,
917  const DtSimulationAddress& addr = DtSimSendToAll) const;
918 
920  virtual void setAppearance(
921  const DtString& name, int appearance,
922  const DtSimulationAddress& addr = DtSimSendToAll) const;
923 
925  virtual void setCapabilities(
926  const DtString& name, int capabilities,
927  const DtSimulationAddress& addr = DtSimSendToAll) const;
928 
930  virtual void setHeading(
931  const DtString& name, double degrees,
932  const DtSimulationAddress& addr = DtSimSendToAll) const;
933 
935  virtual void setForce(
936  const DtString& name, DtForceType force,
937  const DtSimulationAddress& addr = DtSimSendToAll) const;
938 
942  virtual void requestSpotReports(const DtString& name, bool onOff,
943  const DtSimulationAddress& addr = DtSimSendToAll) const;
944 
948  virtual void requestEngagementReports(const DtString& name, bool onOff,
949  const DtSimulationAddress& addr = DtSimSendToAll) const;
950 
952  virtual void setResource(const DtString& name,
953  const char* resourceType, double value,
954  const DtSimulationAddress& addr = DtSimSendToAll) const;
955 
959  virtual void setRulesOfEngagement(
960  const DtString& name, const char* rulesType,
961  const DtSimulationAddress& addr = DtSimSendToAll) const;
962 
964  virtual void setSectorOfResponsibility(
965  const DtString& name, double center, double size,
966  const DtSimulationAddress& addr = DtSimSendToAll) const;
967 
969  virtual void setSpeed(
970  const DtString& name, double speed,
971  const DtSimulationAddress& addr = DtSimSendToAll) const;
972 
974  virtual void setCurrentSpeed(
975  const DtString& name, double speed,
976  const DtSimulationAddress& addr = DtSimSendToAll) const;
977 
979  virtual void setTarget(
980  const DtString& name, const DtString& target,
981  const DtSimulationAddress& addr = DtSimSendToAll) const;
982 
985  virtual void setSuperior(
986  const DtString& name, const DtString& superior,
987  const DtSimulationAddress& addr = DtSimSendToAll) const;
988 
990  virtual void setTaskedBySuperior(const DtString& name,
991  const DtSimulationAddress& addr = DtSimSendToAll) const;
992 
994  virtual void setConcealed(const DtString& name,
995  bool yes, const DtSimulationAddress& addr = DtSimSendToAll) const;
996 
998  virtual void setEmitter(const DtString& name,
999  int emitterId, bool on,
1000  const DtSimulationAddress& addr = DtSimSendToAll) const;
1001 
1003  virtual void setIff(const DtString& name,
1004  bool mode1on, int mode1code,
1005  bool mode2on, int mode2code,
1006  bool mode3on, int mode3code,
1007  bool mode4on, int mode4code,
1008  DtIffAtcNavaidsAltParm4 altParm4,
1009  bool modeCon, bool useAltModeC,
1010  bool modeSon, bool emergency,
1011  bool flash, bool sti, bool modeSTcasI,
1012  int pin, bool mode5LevelSelection,
1013  unsigned int messageFormatsPresent, unsigned int nationalOrigin,
1014  unsigned int navigationSource, unsigned int figureOfMerit,
1015  const DtSimulationAddress& addr = DtSimSendToAll) const;
1016 
1018  virtual void restore(const DtString& name,
1019  const DtSimulationAddress& addr = DtSimSendToAll) const;
1020 
1023  virtual void setDestroyed(const DtString& name,
1024  const DtSimulationAddress& addr = DtSimSendToAll) const;
1025 
1029  virtual void setLifeformWeaponState(
1030  const DtString& name, DtWeaponState weapon,
1031  const DtSimulationAddress& addr) const;
1032 
1036  virtual void setLifeformPosture(
1037  const DtString& name, DtLifeformState posture,
1038  const DtSimulationAddress& addr) const;
1039 
1042  virtual void setAggregateFormation(
1043  const DtString& leader, const DtString& formationName,
1044  const DtSimulationAddress& addr = DtSimSendToAll) const;
1045 
1049  virtual void reorganizeAggregate(const DtString& leader,
1050  const DtSimulationAddress& addr = DtSimSendToAll) const;
1051 
1055  virtual void disaggregateEntity(const DtString& entity,
1056  const DtSimulationAddress& addr = DtSimSendToAll) const;
1057 
1061  virtual void aggregateEntity(const DtString& entity,
1062  const DtSimulationAddress& addr = DtSimSendToAll) const;
1063 
1066  virtual void sendSetDataMsg(
1067  const DtString& recipient, DtSetDataRequest* msg,
1068  const DtSimulationAddress& addr) const;
1069 
1071 
1072 
1073  //-------------------------------------------------------
1075  //-------------------------------------------------------
1076 
1080  virtual void sendVrfObjectCreateMsg(
1081  const DtSimulationAddress& addr,
1082  unsigned int requestId,
1083  const DtString& name,
1084  const DtObjectType& type,
1085  const DtList& vertices,
1086  const DtString& label,
1087  const DtAppearance& appearance,
1088  DtForceType force,
1089  bool projection,
1090  bool closedFigure,
1091  DtReal heading,
1092  bool createSubObjects,
1093  bool clampToGroundFlag = true,
1094  const DtString& initialFormation = DtString::nullString(),
1095  DtAggregateState initialAggregateState = DtDisaggregated,
1096  const DtString& userData = DtString::nullString(),
1097  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1098  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1099  std::list<DtAdminContent*>* initialAdminContent = 0,
1100  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1101  const DtString& overlayParent = "") const;
1102 
1109  virtual void sendVrfObjectModifyMsg(
1110  const DtSimulationAddress& addr,
1111  const DtEntityIdentifier& id,
1112  DtString* name = 0,
1113  DtList* vertices = 0,
1114  DtForceType* force = 0,
1115  DtReal* heading = 0,
1116  DtString* label = 0,
1117  DtAppearance* appearance = 0,
1118  DtString* overlayParent = 0,
1119  DtString* userData = 0) const;
1120 
1124  virtual void sendVrfOverlayObjectModifyMsg(
1125  const DtSimulationAddress& addr,
1126  const DtEntityIdentifier& id,
1127  int color,
1128  DtString parentName,
1129  DtString attachTo,
1130  bool keepExistingAttachment = true,
1131  char* userData = 0,
1132  int len = 0) const;
1133 
1134  virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1135  const DtSimulationAddress& addr,
1136  const DtEntityIdentifier& id,
1137  const DtVrfIndirectArtilleryObjectModify * mod) const;
1138 
1139  //-------------------------------------------------------
1141  //-------------------------------------------------------
1142 
1145  virtual void moveAlongRoute(
1146  const DtString& entityName, const DtString& routeName,
1147  const DtSimulationAddress& addr = DtSimSendToAll) const;
1148 
1151  virtual void moveToWaypoint(
1152  const DtString& entityName, const DtString& waypoint,
1153  const DtSimulationAddress& addr = DtSimSendToAll) const;
1154 
1158  virtual void moveToLocation(
1159  const DtString& entityName, const DtVector& destinationLocation,
1160  const DtSimulationAddress& addr = DtSimSendToAll) const;
1161 
1164  virtual void patrolBetweenWaypoints(
1165  const DtString& name,
1166  const DtString& waypoint1, const DtString& waypoint2,
1167  const DtSimulationAddress& addr = DtSimSendToAll) const;
1168 
1171  virtual void patrolAlongRoute(
1172  const DtString& name, const DtString& route,
1173  const DtSimulationAddress& addr = DtSimSendToAll) const;
1174 
1180  virtual void followEntity(
1181  const DtString& name,
1182  const DtString& leader, const DtVector& offset,
1183  const DtSimulationAddress& addr = DtSimSendToAll) const;
1184 
1187  virtual void wait(
1188  const DtString& name,
1189  const DtSimulationAddress& addr = DtSimSendToAll) const;
1190 
1193  virtual void waitDuration(
1194  const DtString& name, DtTime duration,
1195  const DtSimulationAddress& addr = DtSimSendToAll) const;
1196 
1199  virtual void waitElapsed(
1200  const DtString& name, DtTime elapsed,
1201  const DtSimulationAddress& addr = DtSimSendToAll) const;
1202 
1206  virtual void sendTaskMsg(
1207  const DtString& recipient, DtSimTask* task,
1208  const DtSimulationAddress& addr = DtSimSendToAll) const;
1209 
1212  virtual void abandonPlan(const DtString& name,
1213  const DtSimulationAddress& addr = DtSimSendToAll) const;
1214 
1216  virtual void skipTask(const DtString& name,
1217  const DtSimulationAddress& addr = DtSimSendToAll) const;
1218 
1221  virtual void restartPlan(const DtString& name,
1222  const DtSimulationAddress& addr = DtSimSendToAll) const;
1223 
1231  virtual void assignPlanByName(
1232  const DtString& name, const DtPlan& plan,
1233  const DtSimulationAddress& addr = DtSimSendToAll,
1234  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1235 
1237  virtual void assignMultiplePlanByName(
1238  const std::vector<DtString>& entities, const DtPlan& plan,
1239  const DtSimulationAddress& addr = DtSimSendToAll,
1240  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1241 
1246  virtual void requestPlan(
1247  const DtString& name,
1248  bool addStmtCallback = true,
1249  const DtSimulationAddress& addr = DtSimSendToAll) const;
1250 
1255  virtual void subscribePlan(const DtString& name,
1256  DtPlanCallbackFcn fn, void* usr,
1257  const DtSimulationAddress& addr = DtSimSendToAll);
1258 
1264  virtual void requestMultiplePlan(const std::vector<DtString>& entities,
1265  DtMultiplePlanRequestCallbackFcn fcn, void *usr,
1266  const DtSimulationAddress& addr = DtSimSendToAll);
1267 
1268  virtual void requestMultiplePlan(const std::vector<DtString>& entities,
1269  const DtSimulationAddress& addr = DtSimSendToAll);
1270 
1273  virtual void unsubscribePlan(const DtString& name,
1274  DtPlanCallbackFcn fn, void* usr);
1275 
1278  virtual void unsubscribeAllPlans();
1279 
1284  virtual void addPlanStatementCallback(const DtString& name,
1285  DtPlanStatementCallbackFcn callback, void* usrData);
1286 
1289  virtual void removePlanStatementCallback(const DtString& name,
1290  DtPlanStatementCallbackFcn callback, void* usrData);
1291 
1294  virtual void removeAllPlanStatementCallbacks();
1295 
1300  virtual void addPlanCompleteCallback(const DtString& name,
1301  DtPlanCompleteCallbackFcn callback, void* usrData);
1302 
1305  virtual void removePlanCompleteCallback(const DtString& name,
1306  DtPlanCompleteCallbackFcn callback, void* usrData);
1307 
1310  virtual void removeAllPlanCompleteCallbacks();
1311 
1313 
1315  virtual void requestGlobalPlansList(const DtSimulationAddress& addr);
1316 
1324  virtual void assignGlobalPlan(
1325  const DtString& name, const DtPlan& plan,
1326  const DtSimulationAddress& addr = DtSimSendToAll,
1327  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1328 
1330  virtual void deleteGlobalPlan(const DtString& name,
1331  const DtSimulationAddress& addr = DtSimSendToAll) const;
1332 
1336  virtual void requestGlobalPlan(
1337  const DtString& name,
1338  const DtSimulationAddress& addr = DtSimSendToAll) const;
1339 
1344  virtual void subscribeGlobalPlan(const DtString& name,
1345  DtPlanCallbackFcn fn, void* usr,
1346  const DtSimulationAddress& addr = DtSimSendToAll);
1347 
1350  virtual void unsubscribeGlobalPlan(const DtString& name,
1351  DtPlanCallbackFcn fn, void* usr);
1352 
1356  virtual void addGlobalPlanStatementCallback(const DtString& name,
1357  DtPlanStatementCallbackFcn callback, void* usrData);
1358 
1360  virtual void removeGlobalPlanStatementCallback(const DtString& name,
1361  DtPlanStatementCallbackFcn callback, void* usrData);
1362 
1366  virtual void addGlobalPlanCompleteCallback(const DtString& name,
1367  DtPlanCompleteCallbackFcn callback, void* usrData);
1368 
1370  virtual void removeGlobalPlanCompleteCallback(const DtString& name,
1371  DtPlanCompleteCallbackFcn callback, void* usrData);
1372 
1378  virtual DtVrfObjectMessageExecutive* objectMessageExecutive();
1379 
1385  virtual void sendMessageToObject(DtVrfObjectMessage* objectMessage,
1386  const DtSimulationAddress& addr = DtSimSendToAll) const;
1387 
1388  //-------------------------------------------------------
1389 
1393  virtual void loadedScenario(
1394  const DtSimulationAddress& addr, unsigned int requestId);
1395 
1399  virtual void processSaveMessages();
1400 
1404  virtual DtTime scenarioSimTimeForSave();
1405 
1409  virtual void setTerrainDatabaseFilename(DtScenario* scen);
1410 
1414  virtual void setParameterDatabaseFilename(DtScenario* scen);
1415 
1419  virtual void setPhysicalWorldFilename(DtScenario* scen);
1420 
1424  virtual void setTimeMultiplier(DtScenario* scen);
1425 
1429  virtual void setAutoReorganize(DtScenario* scen);
1430 
1434  virtual void setRandomNumberSeed(DtScenario* scen);
1435 
1439  virtual void setFrameRateMode(DtScenario* scen);
1440 
1444  virtual void setFrameDeltaTime(DtScenario* scen);
1445 
1449  virtual void setExerciseStartTime(DtScenario* scen);
1450 
1454  virtual void setExerciseStartDateAndTime(DtScenario* scen);
1455 
1462  virtual bool save(DtString& sError);
1463 
1468  virtual void save(const DtSimulationAddress& addr, DtIfSaveComplete* s);
1469 
1473  virtual void exported(const DtSimulationAddress& addr, DtIfExportComplete* s);
1474 
1476  virtual void completeExport();
1477 
1481  virtual void savedScenario(const DtSimulationAddress& addr,
1482  DtSaveResult result, unsigned int requestId);
1483 
1486  virtual void doPendingSaveWork();
1487 
1490  virtual void doPendingExportWork();
1491 
1494  virtual void doPendingLoadWork();
1495 
1498  virtual void objectCreated(unsigned int requestId,
1499  const DtString& name, const DtEntityIdentifier& id);
1500 
1502  virtual unsigned int generateRequestId() const;
1503 
1506  virtual void receivedPlan(const DtString& name, bool isGlobal,
1507  const DtList& statements);
1508 
1514  virtual void receivedPlanStmt(const DtString& name, bool isGlobal,
1515  DtPlanStatus planStatus);
1516 
1523  virtual void embarkObject(const DtSimulationAddress& addr, const DtString& entity, const DtString& ontoEntity,
1524  bool loadOverride = false, const DtVector& loadOverridePosition = DtVector::zero());
1525 
1526  virtual void disembarkObject(const DtSimulationAddress& addr, const DtString& entity);
1527  virtual void disembarkAllObjects(const DtSimulationAddress& addr, const DtString& entity);
1528 
1531  virtual void requestTasksAndSetsFor(const DtSimulationAddress& addr,
1532  const DtString& entityName);
1533 
1535  virtual void requestTasksAndSetsFor(const std::vector<DtString>& names);
1536 
1539  virtual void requestDIGuyAppearancesAndAnimations(const DtSimulationAddress& addr,
1540  const DtString& entityName);
1541 
1543  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtString>& names);
1544 
1545  //-------------------------------------------------------
1547  //-------------------------------------------------------
1548 
1552  virtual DtDefaultVrfObjectMessageFactory* vrfObjectMsgFactory();
1553  virtual DtDefaultCondExprFactory* condExprFactory();
1554  virtual DtDefaultStatementFactory* stmtFactory();
1555  virtual DtDefaultSimReportFactory* reportFactory();
1556  virtual DtDefaultSimTaskFactory* taskFactory();
1557  virtual DtDefaultSetDataRequestFactory* setDataFactory();
1558  virtual DtDefaultSimCommandFactory* simCommandFactory();
1559  virtual DtDefaultAdminContentFactory* adminContentFactory();
1560 
1561  //-------------------------------------------------------
1563  //-------------------------------------------------------
1564 
1566  virtual void setRotationThreshold(DtReal thresh);
1567 
1569  virtual void setTranslationThreshold(DtReal thresh);
1570 
1575  virtual void setAggDimensionThreshold(DtReal thresh);
1576 
1578  virtual void setHostInetAddr(DtInetAddr);
1579  virtual DtInetAddr hostInetAddr() const;
1580 
1583  virtual void querySpatialSubdivisionConfiguration(
1584  const DtSimulationAddress& backendAddress,
1585  DtSpatialSubdivisionType spatialSubdivisionType,
1586  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1587 
1589  virtual void setSpatialSubdivsionConfiguration(
1590  const DtSimulationAddress& backendAddress,
1591  DtSpatialSubdivisionType spatialSubdivisionType,
1592  const int spatialSubdivisionXResolution,
1593  const int spatialSubdivisionYResolution,
1594  const int spatialSubdivisionZResolution);
1595 
1597  virtual void requestIndirectArtilleryInformation(const DtString&);
1598 
1606  virtual void requestResources(const DtString& name = DtString::nullString(),
1607  const std::list<DtString>* list = 0,
1608  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1609 
1610  //-------------------------------------------------------
1612  //-------------------------------------------------------
1616  virtual void addObjectConsoleMessageCallback(
1617  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1618 
1619  virtual void removeObjectConsoleMessageCallback(
1620  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1622 
1625  virtual void setObjectNotifyLevel(const DtString& objectName,
1626  DtNotifyLevelType notifyLevel, const DtSimulationAddress& addr = DtSimSendToAll);
1627 
1631  virtual void logObjectConsoleToFile(const DtString& objectName,
1632  const DtFilename filename);
1633 
1636  virtual void stopLoggingObjectConsoleToFile(const DtString& objectName);
1637 
1638  //-------------------------------------------------------
1640  //-------------------------------------------------------
1644  virtual void addBackendConsoleMessageCallback(
1645  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1646 
1647  virtual void removeBackendConsoleMessageCallback(
1648  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1650 
1655  virtual void requestResourceNames(const std::list<DtString>& list,
1656  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1657 
1663  virtual DtRadioMessageListener* radioMessageListener();
1664 
1665  //-------------------------------------------------------
1667  //-------------------------------------------------------
1668 
1670  DtRemoteEnvironmentController* remoteEnvironmentController();
1671 
1677  virtual void initializeGlobalEnvironment(
1678  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
1679 
1682  DtRemoteEnvironmentController* createRemoteEnvironmentController();
1683 
1684 public:
1685 
1688  static void doPendingSaveWorkCb(void* usr);
1689 
1692  static void doPendingExportWorkCb(void* usr);
1693 
1696  static void doPendingLoadWorkCb(void* usr);
1697 
1700  static void savedScenarioCb(DtSimMessage* msg, void* usr);
1701 
1704  static void exportScenarioCb(DtSimMessage* msg, void* usr);
1705 
1708  static void loadedScenarioCb(DtSimMessage* msg, void* usr);
1709 
1712  static void receiveFileCb(const DtFilename& filename, void* usr);
1713 
1715  static void receivedMultiPlanCb(DtSimMessage* msg, void* usr);
1716 
1718  virtual void processReceivedMultiPlan(DtIfMultiplePlanResponse* msg);
1719 
1721  static void objectCreatedCb(DtSimMessage* msg, void* usr);
1722 
1724  static void receivedPlanCb(DtSimMessage* msg, void* usr);
1725 
1727  static void receivedPlanStmtCb(DtSimMessage* msg, void* usr);
1728 
1731  static void overlayObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
1732  void* usr);
1733  virtual void processOverlayObjectCreated(const DtString& name, const DtEntityIdentifier& id,
1734  DtVrfOverlayObjectModify* modifications);
1735 
1738  static void indirectArtilleryObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
1739  void* usr);
1740  virtual void processIndirectArtilleryObjectCreated(const DtString& name, const DtEntityIdentifier& id,
1741  DtVrfIndirectArtilleryObjectModify* modifications);
1742 
1744  static void resourcesProcessedCb(DtSimMessage* msg, void* usr);
1745 
1747  virtual void processResourcesProcessedCb(const DtIfServerRequestResponse& rsp);
1748 
1751  static void spatialSubdivisionConfigurationCb(DtSimMessage* msg, void* usr);
1752 
1755  virtual void processSpatialSubdivisionConfigurationCb(
1756  const DtIfServerRequestResponse& rsp);
1757 
1760  static void commentInteractionCallback(DtCommentInteraction *inter, void* usr);
1761 
1764  virtual void processCommentInteraction(DtCommentInteraction* inter);
1765 
1767  virtual DtVrfConfigurationFileComposer* composer();
1768 
1769 protected:
1770 
1774  virtual void onInit();
1775  virtual void resetStateData();
1776  virtual void emptyLists();
1777 
1779  virtual void sendAggregateAsMsg(
1780  const DtSimulationAddress& addr,
1781  unsigned int requestId,
1782  const DtObjectType& objectType,
1783  DtForceType force,
1784  const DtVector& position,
1785  DtReal heading,
1786  DtList* entityNames,
1787  DtAggregateState initialAggregateState) const;
1788 
1790  virtual DtVrfConfigurationFileComposer* createComposer();
1791 
1794  virtual void sendQuerySpatialSubdivisionConfigurationRequest(
1795  const DtSimulationAddress& backendAddress,
1796  DtSpatialSubdivisionType spatialSubdivisionType ,
1797  DtServerRequestResponseCallbackFcn fcn, void* usr);
1798 
1805  virtual bool arbitrarySimAddress(DtSimulationAddress& address) const;
1806 
1814  virtual bool addStatementsAndSendPlan(const DtPlan& plan, DtIfPlan& planMsg,
1815  const DtSimulationAddress& addr = DtSimSendToAll,
1816  int *retiStatus = 0, DtString* retsStmt = 0) const;
1817 
1820  static void deliverRadioMessageCallback(DtSimMessage* msg, void* usr);
1821  static void vrfObjectMessageCallback(const DtVrfObjectMessage* objMsg, void* usr);
1824  virtual void processVrfObjectMessage(const DtVrfObjectMessage* objectMsg);
1825 
1828  static void globalEnvironmentCreatedCb(const DtString& name, const DtEntityIdentifier& id, void* usr);
1829  virtual void processGlobalEnvironmentCreated(const DtString& name, const DtEntityIdentifier& id);
1830 
1831 public:
1833 
1837  virtual bool newScenario(
1838  const DtFilename& dbname,
1839  const DtFilename& guidbname,
1840  const DtFilename& opdname,
1841  const DtFilename& physicalWorldName,
1842  const std::vector<DtString>& simulationModelSetFiles,
1843  const DtScenario* baseScenario = 0,
1844  time_t startTimeOfDay = 12 * 3600,
1845  DtString* errorString = 0);
1846 
1847 protected:
1848  DtExerciseConn* myExConn;
1849  DtReflectedEnvironmentProcessList* myReflectedEnvironmentProcessList;
1860  DtList myBeList;
1861 
1868 
1869  typedef std::list<PlanCbInfo> DtPlanCallbackListType;
1871  typedef std::list<StmtCbInfo> DtStatementCallbackListType;
1873  typedef std::list<PlanCompleteCbInfo> DtPlanCompleteCallbaclListType;
1875 
1876  DtHashlist myObjectCbs;
1877 
1878  typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
1881 
1882  typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
1885 
1887  DtFilename mySaveName;
1888  DtFilename myOverlayFilename;
1892  DtFilename myOpdName;
1906 
1909 
1919 
1924 
1927 
1930  DtFilename myTempDirectory;
1931 
1935  DtInetAddr myInetAddr;
1936 
1941  mutable unsigned int myRequestIdCounter;
1942 
1945 
1948 
1951 
1954 
1957 
1959  DtFilename myExportFile;
1960 
1963 
1967 
1970 };
1971 
1980 {
1981 public:
1982  DtVrfOverlayObjectModify(int color, const DtString& attachTo,
1983  char* userData,
1984  int iUserDataSize, DtOverlayCreatedCallbackFcn fcn,
1985  DtVrfRemoteController* control);
1986 
1987  virtual ~DtVrfOverlayObjectModify();
1988 
1989  virtual int color() const;
1990  virtual const DtString& attachTo() const;
1991  virtual void userData(char** data, int* userDataSize);
1992  virtual DtVrfRemoteController* remoteController();
1993  virtual DtOverlayCreatedCallbackFcn userCallback();
1994 
1995 protected:
1996  int myColor;
1999  char* myUserData;
2002 };
2003 
2007 {
2008 public:
2011 
2013  virtual DtVrfRemoteController* remoteController() const;
2014  virtual void setRemoteController(DtVrfRemoteController*);
2015 
2017  virtual const DtIfIndirectArtilleryData & data() const;
2018  virtual DtIfIndirectArtilleryData & data();
2019  virtual void setData(const DtIfIndirectArtilleryData & data);
2020 
2021 protected:
2024 };

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)