VR-Forces 4.3 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 
475  virtual void run(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
476  virtual void pause(bool useStartStopInteraction = false, const DtSimulationAddress& addr = DtSimSendToAll) const;
477 
478  virtual void rewind() const;
479  virtual void exit() const;
480  virtual void step() const;
481  virtual void setTimeMultiplier(double multiplier) const;
483 
492  virtual void setOpdSaveName(const DtFilename& f);
493  virtual const DtFilename& opdSaveName() const;
495 
500  virtual void setMaxWaitSaveTime(DtTime t);
501  virtual DtTime maxWaitSaveTime() const;
503 
508  virtual void setMaxWaitLoadTime(DtTime t);
509  virtual DtTime maxWaitLoadTime() const;
511 
516  virtual void setOverlayFilename(const DtFilename& overlay);
517  virtual const DtFilename& overlayFilename() const;
519 
524  virtual void setHostilityFilename(const DtFilename& hostilty);
525  virtual const DtFilename& hostilityFilename() const;
527 
528  virtual void setScenarioExtrasFilename(const DtFilename& extras);
529  virtual const DtFilename& scenarioExtrasFilename() const;
530 
535  virtual void setSelectionGroupsFilename(const DtFilename& sel);
536  virtual const DtFilename& selectionGroupsFilename() const;
538 
543  virtual void setSymbolMapFilename(const DtFilename& overlay);
544  virtual const DtFilename& symbolMapFilename() const;
546 
551  virtual void setCreateMenuFilename(const DtFilename& overlay);
552  virtual const DtFilename& createMenuFilename() const;
554 
556  virtual void saveParameterDb(const DtFilename& filename);
557 
558  //-------------------------------------------------------
560  //-------------------------------------------------------
561 
563  virtual void deleteObject(const DtString& name,
564  const DtSimulationAddress& addr = DtSimSendToAll) const;
565 
567  virtual void deleteObject(const DtEntityIdentifier& id,
568  const DtSimulationAddress& addr = DtSimSendToAll) const;
569 
570  //-------------------------------------------------------
572  //-------------------------------------------------------
573 
575 
580  virtual void createWaypoint(
581  const DtVector& geocentricPosition,
582  const DtString& uniqueName = DtString::nullString(),
583  const DtString& label = DtString::nullString(),
584  const DtSimulationAddress& addr = DtSimSendToAll) const;
585 
589  virtual void createWaypoint(
590  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
591  const DtVector& geocentricPosition,
592  const DtString& uniqueName = DtString::nullString(),
593  const DtString& label = DtString::nullString(),
594  const DtSimulationAddress& addr = DtSimSendToAll);
595 
597  virtual void modifyWaypoint(
598  const DtEntityIdentifier& uniqueId,
599  DtString* uniqueName = 0,
600  DtString* label = 0,
601  DtVector* geocentricPosition = 0,
602  const DtSimulationAddress& addr = DtSimSendToAll) const;
603 
605 
610  virtual void createRoute(
611  const DtList& vertices,
612  const DtString& uniqueName = DtString::nullString(),
613  const DtString& label = DtString::nullString(),
614  const DtSimulationAddress& addr = DtSimSendToAll) const;
615 
619  virtual void createRoute(
620  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
621  const DtList& vertices,
622  const DtString& uniqueName = DtString::nullString(),
623  const DtString& label = DtString::nullString(),
624  const DtSimulationAddress& addr = DtSimSendToAll) ;
625 
627  virtual void modifyRoute(
628  const DtEntityIdentifier& uniqueId,
629  DtString* uniqueName = 0,
630  DtString* label = 0,
631  DtList* vertices = 0,
632  const DtSimulationAddress& addr = DtSimSendToAll) const;
633 
635 
640  virtual void createPhaseLine(
641  const DtVector& dbPoint1,
642  const DtVector& dbPoint2,
643  const DtString& uniqueName = DtString::nullString(),
644  const DtString& label = DtString::nullString(),
645  const DtSimulationAddress& addr = DtSimSendToAll) const;
646 
650  virtual void createPhaseLine(
651  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
652  const DtVector& dbPoint1,
653  const DtVector& dbPoint2,
654  const DtString& uniqueName = DtString::nullString(),
655  const DtString& label = DtString::nullString(),
656  const DtSimulationAddress& addr = DtSimSendToAll) ;
657 
659  virtual void modifyPhaseLine(
660  const DtEntityIdentifier& uniqueId,
661  DtString* uniqueName = 0,
662  DtString* label = 0,
663  DtVector* newDbPoint1 = 0,
664  DtVector* newDbPoint2 = 0,
665  const DtSimulationAddress& addr = DtSimSendToAll) const;
666 
668 
674  virtual void createControlArea(
675  const DtList& vertices,
676  const DtString& uniqueName = DtString::nullString(),
677  const DtString& label = DtString::nullString(),
678  const DtSimulationAddress& addr = DtSimSendToAll) const;
679 
683  virtual void createControlArea(
684  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
685  const DtList& vertices,
686  const DtString& uniqueName = DtString::nullString(),
687  const DtString& label = DtString::nullString(),
688  const DtSimulationAddress& addr = DtSimSendToAll) ;
689 
691  virtual void modifyControlArea(
692  const DtEntityIdentifier& uniqueId,
693  DtString* uniqueName = 0,
694  DtString* label = 0,
695  DtList* newVertices = 0,
696  const DtSimulationAddress& addr = DtSimSendToAll) const;
697 
699 
705  virtual void createObstacle(
706  const DtList& vertices,
707  const DtString& uniqueName = DtString::nullString(),
708  const DtString& label = DtString::nullString(),
709  const DtSimulationAddress& addr = DtSimSendToAll) const;
710 
714  virtual void createObstacle(
715  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
716  const DtList& vertices,
717  const DtString& uniqueName = DtString::nullString(),
718  const DtString& label = DtString::nullString(),
719  const DtSimulationAddress& addr = DtSimSendToAll) ;
720 
722  virtual void modifyObstacle(
723  const DtEntityIdentifier& uniqueId,
724  DtString* uniqueName = 0,
725  DtString* label = 0,
726  DtList* newVertices = 0,
727  const DtSimulationAddress& addr = DtSimSendToAll) const;
728 
730 
737  virtual void createDisaggregationArea(
738  const DtList& vertices,
739  const DtString& uniqueName = DtString::nullString(),
740  const DtString& label = DtString::nullString(),
741  const DtSimulationAddress& addr = DtSimSendToAll) const;
742 
747  virtual void createDisaggregationArea(
748  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
749  const DtList& vertices,
750  const DtString& uniqueName = DtString::nullString(),
751  const DtString& label = DtString::nullString(),
752  const DtSimulationAddress& addr = DtSimSendToAll) ;
753 
755  virtual void modifyDisaggregationArea(
756  const DtEntityIdentifier& uniqueId,
757  DtString* uniqueName = 0,
758  DtString* label = 0,
759  DtList* newVertices = 0,
760  const DtSimulationAddress& addr = DtSimSendToAll) const;
761 
775  virtual void createOverlayObject(
776  const DtEntityType& type,
777  const DtList& vertices,
778  const DtForceType& force,
779  const DtString& name,
780  const DtString& label,
781  int color,
782  const DtString& parentName,
783  bool projection,
784  bool closedFigure,
785  const DtAppearance& appearance = DtAppearance::nullAppearance(),
786  const DtString& attachTo = DtString(),
787  char* userData = 0,
788  int dataSize = 0,
789  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
790  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
792  const DtSimulationAddress& addr = DtSimSendToAll,
793  unsigned int rId = 0,
794  std::list<DtAdminContent*>* initialAdminContent = 0,
795  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0);
796 
797  virtual void createIndirectArtillery(
798  const DtVrfIndirectArtilleryObjectModify * params,
799  const DtSimulationAddress& addr);
800  //-------------------------------------------------------
802  //-------------------------------------------------------
803 
805  virtual void createObject(
806  const DtEntityType& type,
807  DtForceType force,
808  DtList* vertices,
809  const DtString& name,
810  const DtSimulationAddress& addr);
811 
813  virtual void createEntity(
814  const DtEntityType& type,
815  const DtVector& geocentricPosition,
816  DtForceType force,
817  DtReal heading,
818  const DtString& uniqueName = DtString::nullString(),
819  const DtString& label = DtString::nullString(),
820  const DtSimulationAddress& addr = DtSimSendToAll,
821  bool groundClamp = true) const;
822 
826  virtual void createEntity(
827  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
828  const DtEntityType& type,
829  const DtVector& geocentricPosition,
830  DtForceType force,
831  DtReal heading,
832  const DtString& uniqueName = DtString::nullString(),
833  const DtString& label = DtString::nullString(),
834  const DtSimulationAddress& addr = DtSimSendToAll,
835  bool groundClamp = true);
836 
837  virtual void createAggregate(
838  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
839  const DtEntityType& type,
840  const DtVector& geocentricPosition,
841  DtForceType force,
842  DtReal heading,
843  const DtString& uniqueName,
844  const DtString& label = DtString::nullString(),
845  const DtSimulationAddress& addr = DtSimSendToAll,
846  DtAggregateState initialAggregateState = DtDisaggregated);
847 
849  virtual void createAggregate(
850  const DtEntityType& type,
851  const DtVector& geocentricPosition,
852  DtForceType force,
853  DtReal heading,
854  DtList* entityNames = 0,
855  const DtSimulationAddress& addr = DtSimSendToAll,
856  DtAggregateState initialAggregateState = DtDisaggregated,
857  unsigned int requestId = 0) const;
858 
862  virtual void createAggregate(
863  DtVrfObjectCreatedCallbackFcn fcn, void* usr,
864  const DtEntityType& type,
865  const DtVector& geocentricPosition,
866  DtForceType force,
867  DtReal heading,
868  DtList* entityNames = 0,
869  const DtSimulationAddress& addr = DtSimSendToAll,
870  DtAggregateState initialAggregateState = DtDisaggregated) ;
871 
874  virtual void addToOrganization(
875  const DtEntityIdentifier& objectId,
876  const DtEntityIdentifier& newSuperiorId,
877  const DtSimulationAddress& addr = DtSimSendToAll);
878 
882  virtual void addToForceLevelOrganization(
883  const DtEntityIdentifier& orjectId,
884  const DtSimulationAddress& addr = DtSimSendToAll);
885 
888  virtual void removeFromOrganization(
889  const DtEntityIdentifier& objectId,
890  const DtSimulationAddress& addr = DtSimSendToAll);
891 
897 
899  virtual void setLabel(
900  const DtEntityIdentifier& id, const DtString& label,
901  const DtSimulationAddress& addr = DtSimSendToAll) const;
902 
904  virtual void setOverlayParent(
905  const DtEntityIdentifier& id, const DtString& label,
906  const DtSimulationAddress& addr = DtSimSendToAll) const;
907 
909  virtual void setAltitude(
910  const DtString& name, double altitude, bool aboveGroundLevel = false,
911  const DtSimulationAddress& addr = DtSimSendToAll) const;
912 
914  virtual void setLocation(
915  const DtString& name, DtVector coord,
916  const DtSimulationAddress& addr = DtSimSendToAll) const;
917 
919  virtual void setAppearance(
920  const DtString& name, int appearance,
921  const DtSimulationAddress& addr = DtSimSendToAll) const;
922 
924  virtual void setCapabilities(
925  const DtString& name, int capabilities,
926  const DtSimulationAddress& addr = DtSimSendToAll) const;
927 
929  virtual void setHeading(
930  const DtString& name, double degrees,
931  const DtSimulationAddress& addr = DtSimSendToAll) const;
932 
934  virtual void setForce(
935  const DtString& name, DtForceType force,
936  const DtSimulationAddress& addr = DtSimSendToAll) const;
937 
941  virtual void requestSpotReports(const DtString& name, bool onOff,
942  const DtSimulationAddress& addr = DtSimSendToAll) const;
943 
947  virtual void requestEngagementReports(const DtString& name, bool onOff,
948  const DtSimulationAddress& addr = DtSimSendToAll) const;
949 
951  virtual void setResource(const DtString& name,
952  const char* resourceType, double value,
953  const DtSimulationAddress& addr = DtSimSendToAll) const;
954 
958  virtual void setRulesOfEngagement(
959  const DtString& name, const char* rulesType,
960  const DtSimulationAddress& addr = DtSimSendToAll) const;
961 
963  virtual void setSectorOfResponsibility(
964  const DtString& name, double center, double size,
965  const DtSimulationAddress& addr = DtSimSendToAll) const;
966 
968  virtual void setSpeed(
969  const DtString& name, double speed,
970  const DtSimulationAddress& addr = DtSimSendToAll) const;
971 
973  virtual void setTarget(
974  const DtString& name, const DtString& target,
975  const DtSimulationAddress& addr = DtSimSendToAll) const;
976 
979  virtual void setSuperior(
980  const DtString& name, const DtString& superior,
981  const DtSimulationAddress& addr = DtSimSendToAll) const;
982 
984  virtual void setTaskedBySuperior(const DtString& name,
985  const DtSimulationAddress& addr = DtSimSendToAll) const;
986 
988  virtual void setConcealed(const DtString& name,
989  bool yes, const DtSimulationAddress& addr = DtSimSendToAll) const;
990 
992  virtual void setEmitter(const DtString& name,
993  int emitterId, bool on,
994  const DtSimulationAddress& addr = DtSimSendToAll) const;
995 
997  virtual void setIff(const DtString& name,
998  bool mode1on, int mode1code,
999  bool mode2on, int mode2code,
1000  bool mode3on, int mode3code,
1001  bool mode4on, int mode4code,
1002  DtIffAtcNavaidsAltParm4 altParm4,
1003  bool modeCon, bool useAltModeC,
1004  bool modeSon, bool emergency,
1005  bool flash, bool sti, bool modeSTcasI,
1006  int pin, bool mode5LevelSelection,
1007  unsigned int messageFormatsPresent, unsigned int nationalOrigin,
1008  unsigned int navigationSource, unsigned int figureOfMerit,
1009  const DtSimulationAddress& addr = DtSimSendToAll) const;
1010 
1012  virtual void restore(const DtString& name,
1013  const DtSimulationAddress& addr = DtSimSendToAll) const;
1014 
1017  virtual void setDestroyed(const DtString& name,
1018  const DtSimulationAddress& addr = DtSimSendToAll) const;
1019 
1023  virtual void setLifeformWeaponState(
1024  const DtString& name, DtWeaponState weapon,
1025  const DtSimulationAddress& addr) const;
1026 
1030  virtual void setLifeformPosture(
1031  const DtString& name, DtLifeformState posture,
1032  const DtSimulationAddress& addr) const;
1033 
1036  virtual void setAggregateFormation(
1037  const DtString& leader, const DtString& formationName,
1038  const DtSimulationAddress& addr = DtSimSendToAll) const;
1039 
1043  virtual void reorganizeAggregate(const DtString& leader,
1044  const DtSimulationAddress& addr = DtSimSendToAll) const;
1045 
1049  virtual void disaggregateEntity(const DtString& entity,
1050  const DtSimulationAddress& addr = DtSimSendToAll) const;
1051 
1055  virtual void aggregateEntity(const DtString& entity,
1056  const DtSimulationAddress& addr = DtSimSendToAll) const;
1057 
1060  virtual void sendSetDataMsg(
1061  const DtString& recipient, DtSetDataRequest* msg,
1062  const DtSimulationAddress& addr) const;
1063 
1065 
1066 
1067  //-------------------------------------------------------
1069  //-------------------------------------------------------
1070 
1074  virtual void sendVrfObjectCreateMsg(
1075  const DtSimulationAddress& addr,
1076  unsigned int requestId,
1077  const DtString& name,
1078  const DtObjectType& type,
1079  const DtList& vertices,
1080  const DtString& label,
1081  const DtAppearance& appearance,
1082  DtForceType force,
1083  bool projection,
1084  bool closedFigure,
1085  DtReal heading,
1086  bool createSubObjects,
1087  bool clampToGroundFlag = true,
1088  const DtString& initialFormation = DtString::nullString(),
1089  DtAggregateState initialAggregateState = DtDisaggregated,
1090  const DtString& userData = DtString::nullString(),
1091  const std::map<std::string, std::string>& extendedData = std::map<std::string, std::string>(),
1092  const std::map<int, DtString>& extendedLabels = std::map<int, DtString>(),
1093  std::list<DtAdminContent*>* initialAdminContent = 0,
1094  std::list<DtSimInterfaceContent*>* initialInterfaceContent = 0,
1095  const DtString& overlayParent = "") const;
1096 
1103  virtual void sendVrfObjectModifyMsg(
1104  const DtSimulationAddress& addr,
1105  const DtEntityIdentifier& id,
1106  DtString* name = 0,
1107  DtList* vertices = 0,
1108  DtForceType* force = 0,
1109  DtReal* heading = 0,
1110  DtString* label = 0,
1111  DtAppearance* appearance = 0,
1112  DtString* overlayParent = 0,
1113  DtString* userData = 0) const;
1114 
1118  virtual void sendVrfOverlayObjectModifyMsg(
1119  const DtSimulationAddress& addr,
1120  const DtEntityIdentifier& id,
1121  int color,
1122  DtString parentName,
1123  DtString attachTo,
1124  bool keepExistingAttachment = true,
1125  char* userData = 0,
1126  int len = 0) const;
1127 
1128  virtual void sendVrfIndirectArtilleryObjectModifyMsg(
1129  const DtSimulationAddress& addr,
1130  const DtEntityIdentifier& id,
1131  const DtVrfIndirectArtilleryObjectModify * mod) const;
1132 
1133  //-------------------------------------------------------
1135  //-------------------------------------------------------
1136 
1139  virtual void moveAlongRoute(
1140  const DtString& entityName, const DtString& routeName,
1141  const DtSimulationAddress& addr = DtSimSendToAll) const;
1142 
1145  virtual void moveToWaypoint(
1146  const DtString& entityName, const DtString& waypoint,
1147  const DtSimulationAddress& addr = DtSimSendToAll) const;
1148 
1152  virtual void moveToLocation(
1153  const DtString& entityName, const DtVector& destinationLocation,
1154  const DtSimulationAddress& addr = DtSimSendToAll) const;
1155 
1158  virtual void patrolBetweenWaypoints(
1159  const DtString& name,
1160  const DtString& waypoint1, const DtString& waypoint2,
1161  const DtSimulationAddress& addr = DtSimSendToAll) const;
1162 
1165  virtual void patrolAlongRoute(
1166  const DtString& name, const DtString& route,
1167  const DtSimulationAddress& addr = DtSimSendToAll) const;
1168 
1174  virtual void followEntity(
1175  const DtString& name,
1176  const DtString& leader, const DtVector& offset,
1177  const DtSimulationAddress& addr = DtSimSendToAll) const;
1178 
1181  virtual void wait(
1182  const DtString& name,
1183  const DtSimulationAddress& addr = DtSimSendToAll) const;
1184 
1187  virtual void waitDuration(
1188  const DtString& name, DtTime duration,
1189  const DtSimulationAddress& addr = DtSimSendToAll) const;
1190 
1193  virtual void waitElapsed(
1194  const DtString& name, DtTime elapsed,
1195  const DtSimulationAddress& addr = DtSimSendToAll) const;
1196 
1200  virtual void sendTaskMsg(
1201  const DtString& recipient, DtSimTask* task,
1202  const DtSimulationAddress& addr = DtSimSendToAll) const;
1203 
1206  virtual void abandonPlan(const DtString& name,
1207  const DtSimulationAddress& addr = DtSimSendToAll) const;
1208 
1210  virtual void skipTask(const DtString& name,
1211  const DtSimulationAddress& addr = DtSimSendToAll) const;
1212 
1215  virtual void restartPlan(const DtString& name,
1216  const DtSimulationAddress& addr = DtSimSendToAll) const;
1217 
1225  virtual void assignPlanByName(
1226  const DtString& name, const DtPlan& plan,
1227  const DtSimulationAddress& addr = DtSimSendToAll,
1228  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1229 
1231  virtual void assignMultiplePlanByName(
1232  const std::vector<DtString>& entities, const DtPlan& plan,
1233  const DtSimulationAddress& addr = DtSimSendToAll,
1234  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1235 
1240  virtual void requestPlan(
1241  const DtString& name,
1242  bool addStmtCallback = true,
1243  const DtSimulationAddress& addr = DtSimSendToAll) const;
1244 
1249  virtual void subscribePlan(const DtString& name,
1250  DtPlanCallbackFcn fn, void* usr,
1251  const DtSimulationAddress& addr = DtSimSendToAll);
1252 
1258  virtual void requestMultiplePlan(const std::vector<DtString>& entities,
1259  DtMultiplePlanRequestCallbackFcn fcn, void *usr,
1260  const DtSimulationAddress& addr = DtSimSendToAll);
1261 
1262  virtual void requestMultiplePlan(const std::vector<DtString>& entities,
1263  const DtSimulationAddress& addr = DtSimSendToAll);
1264 
1267  virtual void unsubscribePlan(const DtString& name,
1268  DtPlanCallbackFcn fn, void* usr);
1269 
1272  virtual void unsubscribeAllPlans();
1273 
1278  virtual void addPlanStatementCallback(const DtString& name,
1279  DtPlanStatementCallbackFcn callback, void* usrData);
1280 
1283  virtual void removePlanStatementCallback(const DtString& name,
1284  DtPlanStatementCallbackFcn callback, void* usrData);
1285 
1288  virtual void removeAllPlanStatementCallbacks();
1289 
1294  virtual void addPlanCompleteCallback(const DtString& name,
1295  DtPlanCompleteCallbackFcn callback, void* usrData);
1296 
1299  virtual void removePlanCompleteCallback(const DtString& name,
1300  DtPlanCompleteCallbackFcn callback, void* usrData);
1301 
1304  virtual void removeAllPlanCompleteCallbacks();
1305 
1307 
1309  virtual void requestGlobalPlansList(const DtSimulationAddress& addr);
1310 
1318  virtual void assignGlobalPlan(
1319  const DtString& name, const DtPlan& plan,
1320  const DtSimulationAddress& addr = DtSimSendToAll,
1321  int *retiStatus = NULL, DtString* retsStmt = NULL) const;
1322 
1324  virtual void deleteGlobalPlan(const DtString& name,
1325  const DtSimulationAddress& addr = DtSimSendToAll) const;
1326 
1330  virtual void requestGlobalPlan(
1331  const DtString& name,
1332  const DtSimulationAddress& addr = DtSimSendToAll) const;
1333 
1338  virtual void subscribeGlobalPlan(const DtString& name,
1339  DtPlanCallbackFcn fn, void* usr,
1340  const DtSimulationAddress& addr = DtSimSendToAll);
1341 
1344  virtual void unsubscribeGlobalPlan(const DtString& name,
1345  DtPlanCallbackFcn fn, void* usr);
1346 
1350  virtual void addGlobalPlanStatementCallback(const DtString& name,
1351  DtPlanStatementCallbackFcn callback, void* usrData);
1352 
1354  virtual void removeGlobalPlanStatementCallback(const DtString& name,
1355  DtPlanStatementCallbackFcn callback, void* usrData);
1356 
1360  virtual void addGlobalPlanCompleteCallback(const DtString& name,
1361  DtPlanCompleteCallbackFcn callback, void* usrData);
1362 
1364  virtual void removeGlobalPlanCompleteCallback(const DtString& name,
1365  DtPlanCompleteCallbackFcn callback, void* usrData);
1366 
1372  virtual DtVrfObjectMessageExecutive* objectMessageExecutive();
1373 
1379  virtual void sendMessageToObject(DtVrfObjectMessage* objectMessage,
1380  const DtSimulationAddress& addr = DtSimSendToAll) const;
1381 
1382  //-------------------------------------------------------
1383 
1387  virtual void loadedScenario(
1388  const DtSimulationAddress& addr, unsigned int requestId);
1389 
1393  virtual void processSaveMessages();
1394 
1398  virtual DtTime scenarioSimTimeForSave();
1399 
1403  virtual void setTerrainDatabaseFilename(DtScenario* scen);
1404 
1408  virtual void setParameterDatabaseFilename(DtScenario* scen);
1409 
1413  virtual void setPhysicalWorldFilename(DtScenario* scen);
1414 
1418  virtual void setTimeMultiplier(DtScenario* scen);
1419 
1423  virtual void setAutoReorganize(DtScenario* scen);
1424 
1428  virtual void setRandomNumberSeed(DtScenario* scen);
1429 
1433  virtual void setFrameRateMode(DtScenario* scen);
1434 
1438  virtual void setFrameDeltaTime(DtScenario* scen);
1439 
1443  virtual void setExerciseStartTime(DtScenario* scen);
1444 
1448  virtual void setExerciseStartDateAndTime(DtScenario* scen);
1449 
1456  virtual bool save(DtString& sError);
1457 
1462  virtual void save(const DtSimulationAddress& addr, DtIfSaveComplete* s);
1463 
1467  virtual void exported(const DtSimulationAddress& addr, DtIfExportComplete* s);
1468 
1470  virtual void completeExport();
1471 
1475  virtual void savedScenario(const DtSimulationAddress& addr,
1476  DtSaveResult result, unsigned int requestId);
1477 
1480  virtual void doPendingSaveWork();
1481 
1484  virtual void doPendingExportWork();
1485 
1488  virtual void doPendingLoadWork();
1489 
1492  virtual void objectCreated(unsigned int requestId,
1493  const DtString& name, const DtEntityIdentifier& id);
1494 
1496  virtual unsigned int generateRequestId() const;
1497 
1500  virtual void receivedPlan(const DtString& name, bool isGlobal,
1501  const DtList& statements);
1502 
1508  virtual void receivedPlanStmt(const DtString& name, bool isGlobal,
1509  DtPlanStatus planStatus);
1510 
1517  virtual void embarkObject(const DtSimulationAddress& addr, const DtString& entity, const DtString& ontoEntity,
1518  bool loadOverride = false, const DtVector& loadOverridePosition = DtVector::zero());
1519 
1520  virtual void disembarkObject(const DtSimulationAddress& addr, const DtString& entity);
1521  virtual void disembarkAllObjects(const DtSimulationAddress& addr, const DtString& entity);
1522 
1525  virtual void requestTasksAndSetsFor(const DtSimulationAddress& addr,
1526  const DtString& entityName);
1527 
1529  virtual void requestTasksAndSetsFor(const std::vector<DtString>& names);
1530 
1533  virtual void requestDIGuyAppearancesAndAnimations(const DtSimulationAddress& addr,
1534  const DtString& entityName);
1535 
1537  virtual void requestDIGuyAppearancesAndAnimations(const std::vector<DtString>& names);
1538 
1539  //-------------------------------------------------------
1541  //-------------------------------------------------------
1542 
1546  virtual DtDefaultVrfObjectMessageFactory* vrfObjectMsgFactory();
1547  virtual DtDefaultCondExprFactory* condExprFactory();
1548  virtual DtDefaultStatementFactory* stmtFactory();
1549  virtual DtDefaultSimReportFactory* reportFactory();
1550  virtual DtDefaultSimTaskFactory* taskFactory();
1551  virtual DtDefaultSetDataRequestFactory* setDataFactory();
1552  virtual DtDefaultSimCommandFactory* simCommandFactory();
1553  virtual DtDefaultAdminContentFactory* adminContentFactory();
1554 
1555  //-------------------------------------------------------
1557  //-------------------------------------------------------
1558 
1560  virtual void setRotationThreshold(DtReal thresh);
1561 
1563  virtual void setTranslationThreshold(DtReal thresh);
1564 
1569  virtual void setAggDimensionThreshold(DtReal thresh);
1570 
1572  virtual void setHostInetAddr(DtInetAddr);
1573  virtual DtInetAddr hostInetAddr() const;
1574 
1577  virtual void querySpatialSubdivisionConfiguration(
1578  const DtSimulationAddress& backendAddress,
1579  DtSpatialSubdivisionType spatialSubdivisionType,
1580  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1581 
1583  virtual void setSpatialSubdivsionConfiguration(
1584  const DtSimulationAddress& backendAddress,
1585  DtSpatialSubdivisionType spatialSubdivisionType,
1586  const int spatialSubdivisionXResolution,
1587  const int spatialSubdivisionYResolution,
1588  const int spatialSubdivisionZResolution);
1589 
1591  virtual void requestIndirectArtilleryInformation(const DtString&);
1592 
1600  virtual void requestResources(const DtString& name = DtString::nullString(),
1601  const std::list<DtString>* list = 0,
1602  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1603 
1604  //-------------------------------------------------------
1606  //-------------------------------------------------------
1610  virtual void addObjectConsoleMessageCallback(
1611  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1612 
1613  virtual void removeObjectConsoleMessageCallback(
1614  DtObjectConsoleMessageCallbackFcn fcn, void* usr = 0);
1616 
1619  virtual void setObjectNotifyLevel(const DtString& objectName,
1620  DtNotifyLevelType notifyLevel, const DtSimulationAddress& addr = DtSimSendToAll);
1621 
1625  virtual void logObjectConsoleToFile(const DtString& objectName,
1626  const DtFilename filename);
1627 
1630  virtual void stopLoggingObjectConsoleToFile(const DtString& objectName);
1631 
1632  //-------------------------------------------------------
1634  //-------------------------------------------------------
1638  virtual void addBackendConsoleMessageCallback(
1639  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1640 
1641  virtual void removeBackendConsoleMessageCallback(
1642  DtBackendConsoleMessageCallbackFcn fcn, void* usr = 0);
1644 
1649  virtual void requestResourceNames(const std::list<DtString>& list,
1650  DtServerRequestResponseCallbackFcn fcn = 0, void* usr = 0);
1651 
1657  virtual DtRadioMessageListener* radioMessageListener();
1658 
1659  //-------------------------------------------------------
1661  //-------------------------------------------------------
1662 
1664  DtRemoteEnvironmentController* remoteEnvironmentController();
1665 
1671  virtual void initializeGlobalEnvironment(
1672  const DtSimulationAddress& environmentSimBackend = DtSimSendToAll);
1673 
1676  DtRemoteEnvironmentController* createRemoteEnvironmentController();
1677 
1678 public:
1679 
1682  static void doPendingSaveWorkCb(void* usr);
1683 
1686  static void doPendingExportWorkCb(void* usr);
1687 
1690  static void doPendingLoadWorkCb(void* usr);
1691 
1694  static void savedScenarioCb(DtSimMessage* msg, void* usr);
1695 
1698  static void exportScenarioCb(DtSimMessage* msg, void* usr);
1699 
1702  static void loadedScenarioCb(DtSimMessage* msg, void* usr);
1703 
1706  static void receiveFileCb(const DtFilename& filename, void* usr);
1707 
1709  static void receivedMultiPlanCb(DtSimMessage* msg, void* usr);
1710 
1712  virtual void processReceivedMultiPlan(DtIfMultiplePlanResponse* msg);
1713 
1715  static void objectCreatedCb(DtSimMessage* msg, void* usr);
1716 
1718  static void receivedPlanCb(DtSimMessage* msg, void* usr);
1719 
1721  static void receivedPlanStmtCb(DtSimMessage* msg, void* usr);
1722 
1725  static void overlayObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
1726  void* usr);
1727  virtual void processOverlayObjectCreated(const DtString& name, const DtEntityIdentifier& id,
1728  DtVrfOverlayObjectModify* modifications);
1729 
1732  static void indirectArtilleryObjectCreatedCallback(const DtString& name, const DtEntityIdentifier& id,
1733  void* usr);
1734  virtual void processIndirectArtilleryObjectCreated(const DtString& name, const DtEntityIdentifier& id,
1735  DtVrfIndirectArtilleryObjectModify* modifications);
1736 
1738  static void resourcesProcessedCb(DtSimMessage* msg, void* usr);
1739 
1741  virtual void processResourcesProcessedCb(const DtIfServerRequestResponse& rsp);
1742 
1745  static void spatialSubdivisionConfigurationCb(DtSimMessage* msg, void* usr);
1746 
1749  virtual void processSpatialSubdivisionConfigurationCb(
1750  const DtIfServerRequestResponse& rsp);
1751 
1754  static void commentInteractionCallback(DtCommentInteraction *inter, void* usr);
1755 
1758  virtual void processCommentInteraction(DtCommentInteraction* inter);
1759 
1761  virtual DtVrfConfigurationFileComposer* composer();
1762 
1763 protected:
1764 
1768  virtual void onInit();
1769  virtual void resetStateData();
1770  virtual void emptyLists();
1771 
1773  virtual void sendAggregateAsMsg(
1774  const DtSimulationAddress& addr,
1775  unsigned int requestId,
1776  const DtObjectType& objectType,
1777  DtForceType force,
1778  const DtVector& position,
1779  DtReal heading,
1780  DtList* entityNames,
1781  DtAggregateState initialAggregateState) const;
1782 
1784  virtual DtVrfConfigurationFileComposer* createComposer();
1785 
1788  virtual void sendQuerySpatialSubdivisionConfigurationRequest(
1789  const DtSimulationAddress& backendAddress,
1790  DtSpatialSubdivisionType spatialSubdivisionType ,
1791  DtServerRequestResponseCallbackFcn fcn, void* usr);
1792 
1799  virtual bool arbitrarySimAddress(DtSimulationAddress& address) const;
1800 
1808  virtual bool addStatementsAndSendPlan(const DtPlan& plan, DtIfPlan& planMsg,
1809  const DtSimulationAddress& addr = DtSimSendToAll,
1810  int *retiStatus = 0, DtString* retsStmt = 0) const;
1811 
1814  static void deliverRadioMessageCallback(DtSimMessage* msg, void* usr);
1815  static void vrfObjectMessageCallback(const DtVrfObjectMessage* objMsg, void* usr);
1818  virtual void processVrfObjectMessage(const DtVrfObjectMessage* objectMsg);
1819 
1822  static void globalEnvironmentCreatedCb(const DtString& name, const DtEntityIdentifier& id, void* usr);
1823  virtual void processGlobalEnvironmentCreated(const DtString& name, const DtEntityIdentifier& id);
1824 
1825 public:
1827 
1831  virtual bool newScenario(
1832  const DtFilename& dbname,
1833  const DtFilename& guidbname,
1834  const DtFilename& opdname,
1835  const DtFilename& physicalWorldName,
1836  const std::vector<DtString>& simulationModelSetFiles,
1837  const DtScenario* baseScenario = 0,
1838  time_t startTimeOfDay = 12 * 3600,
1839  DtString* errorString = 0);
1840 
1841 protected:
1842  DtExerciseConn* myExConn;
1843  DtReflectedEnvironmentProcessList* myReflectedEnvironmentProcessList;
1854  DtList myBeList;
1855 
1862 
1863  typedef std::list<PlanCbInfo> DtPlanCallbackListType;
1865  typedef std::list<StmtCbInfo> DtStatementCallbackListType;
1867  typedef std::list<PlanCompleteCbInfo> DtPlanCompleteCallbaclListType;
1869 
1870  DtHashlist myObjectCbs;
1871 
1872  typedef std::list<std::pair<DtObjectConsoleMessageCallbackFcn, void*> >
1875 
1876  typedef std::list<std::pair<DtBackendConsoleMessageCallbackFcn, void*> >
1879 
1881  DtFilename mySaveName;
1882  DtFilename myOverlayFilename;
1886  DtFilename myOpdName;
1900 
1903 
1913 
1918 
1921 
1924  DtFilename myTempDirectory;
1925 
1929  DtInetAddr myInetAddr;
1930 
1935  mutable unsigned int myRequestIdCounter;
1936 
1939 
1942 
1945 
1948 
1951 
1953  DtFilename myExportFile;
1954 
1957 
1961 
1964 };
1965 
1974 {
1975 public:
1976  DtVrfOverlayObjectModify(int color, const DtString& attachTo,
1977  char* userData,
1978  int iUserDataSize, DtOverlayCreatedCallbackFcn fcn,
1979  DtVrfRemoteController* control);
1980 
1981  virtual ~DtVrfOverlayObjectModify();
1982 
1983  virtual int color() const;
1984  virtual const DtString& attachTo() const;
1985  virtual void userData(char** data, int* userDataSize);
1986  virtual DtVrfRemoteController* remoteController();
1987  virtual DtOverlayCreatedCallbackFcn userCallback();
1988 
1989 protected:
1990  int myColor;
1993  char* myUserData;
1996 };
1997 
2001 {
2002 public:
2005 
2007  virtual DtVrfRemoteController* remoteController() const;
2008  virtual void setRemoteController(DtVrfRemoteController*);
2009 
2011  virtual const DtIfIndirectArtilleryData & data() const;
2012  virtual DtIfIndirectArtilleryData & data();
2013  virtual void setData(const DtIfIndirectArtilleryData & data);
2014 
2015 protected:
2018 };

Document ID: Generated on Wed Mar 11 21:20:57 EDT 2015 from SVN revision 150940
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)