VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
networkManagerInterface.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
10 #include <matrix/vlVector.h>
11 #include <vrfutil/uuid.h>
12 #include <set>
13 #include <memory>
14 
15 class DtOutputStream;
16 class DtEntityType;
19 class DtVrfParameterDb;
20 class DtScenario;
21 class Coordinate_System;
22 class DtEntityType;
23 class DtEntityIdentifier;
25 
26 namespace makVrf
27 {
28  class DtStateData;
29 }
30 
31 namespace makVrfEvents
32 {
33  class DtEvent;
34  class DtEventManager;
35 }
36 
37 class DtUUID;
38 
44 {
45 public:
46 
50  {
51  DoNotContinue = 0,
52  Continue = 0x00000001,
53  };
54 
57  {
58  }
59 
61  {
62  }
63 
65  virtual bool waitingToAddObjects() const = 0;
66 
68  virtual void beginFrame(double simTime) = 0;
69 
72  virtual bool preAdvanceFrame() = 0;
73 
76  virtual void advanceFrame(double* networkFrameTime = nullptr) = 0;
77 
79  virtual const char* type() const = 0;
80 
83  virtual bool stateDataAdded(makVrf::DtStateData*) = 0;
84 
86  virtual void stateDataAboutToBeRemoved(const makVrf::DtStateData*) = 0;
87 
89  virtual bool printDataToStream(const DtUUID&, DtOutputStream&) const = 0;
90 
92  virtual void setInterest(const DtVector& geocentricCenter, double radius) = 0;
93 
95  virtual bool init(DtCommunicationManager*) = 0;
96 
98  virtual void reserve(unsigned numToReserve) = 0;
99 
101  virtual void setNumCallbackThreads(unsigned) = 0;
102 
104  virtual bool supportsOwnershipTransfer() const = 0;
105 
107  virtual void setEnabled(bool) = 0;
108 
111  virtual DtString nextEventId(const DtString& = DtString::nullString()) = 0;
112 
114  virtual std::string protocol() const = 0;
115 
117  virtual void setRunFullyThreaded(bool) = 0;
118 
120  virtual void printReflectedObjectCounts() const = 0;
121 
124  virtual void requestUpdatesForRemoteNonVrfObjects() const = 0;
125 
127  virtual const makVrf::DtStateData* stateDataForGlobalId(const DtString&) const = 0;
128 
130  virtual void setCoordinateSystem(const Coordinate_System*) = 0;
131 
133  virtual void setParameterDatabase(DtVrfParameterDb*) = 0;
134 
136  virtual unsigned int maxNameLengthForType(const DtEntityType&) const = 0;
137 
139  virtual void setVrfSessionId(int) = 0;
140 
142  virtual void setVrfMessageVersionSupported(int) = 0;
143 
145  virtual void startScenarioLoad(bool) = 0;
146 
148  virtual void endScenarioLoad(bool) = 0;
149 
151  virtual void setSiteAppId(int, int) = 0;
152 
155  virtual AddEventResult addEvent(const makVrfEvents::DtEvent&, bool& selfReflected) = 0;
156 
158  virtual AddEventResult sendEvent(const makVrfEvents::DtEvent&) = 0;
159 
161  virtual void setEventManager(makVrfEvents::DtEventManager*) = 0;
162 
164  virtual DtU32 scenarioCapabilities() const = 0;
165  virtual void setScenarioCapabilities(DtU32) = 0;
166 
168  virtual void resetSimulation() = 0;
169 
171  virtual void setFrameRateMode(const DtString& mode, double deltaTime, bool manageTime = false) = 0;
172 
174  virtual void rewindScenario() = 0;
175 
177  virtual void run() = 0;
178 
180  virtual void pause() = 0;
181 
183  virtual bool typeIsPublishable(const DtEntityType&) const = 0;
184 
186  virtual void setSimTime(double) = 0;
187 
189  virtual void setTimeMultiplier(double) = 0;
190 
192  virtual void setExerciseStartTime(double) = 0;
193 
195  virtual bool validateScenario(const DtScenario&, DtString& error) const = 0;
196 
198  virtual double determineSimTime(double& dt, DtCommunicationManagerPerformanceTimerInformation* performanceTimerInformation = nullptr) { return 0; };
199 
201  virtual bool hasSimulationTime() const = 0;
202 
204  virtual void removeAndDeleteAll(const std::set<DtUUID>& except = std::set<DtUUID>()) = 0;
205 
208  virtual bool needsUnpublishedDatabase() const = 0;
209 
211  virtual bool selfReflecting() const = 0;
212 
215  virtual void setSelfReflecting(bool) = 0;
216 
218  virtual bool rediscoverObjects() = 0;
219 
221  virtual bool publishingOnLegionNetwork() const = 0;
222 
224  virtual void reserveEntityId(const DtEntityIdentifier&) = 0;
225 
227  virtual void beginBulkCreate() {}
228  virtual void endBulkCreate() {}
229 
231  virtual bool hasNetworkRepresentation(const DtUUID&) const = 0;
232 };
UUID is a unique ID wrapper class.
Definition: uuid.h:59
virtual double determineSimTime(double &dt, DtCommunicationManagerPerformanceTimerInformation *performanceTimerInformation=nullptr)
Determine the next simulation time. Implement only if hasSimulationTime returns true.
Definition: networkManagerInterface.h:198
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:41
Definition: scenario.h:52
The DtEventManager handles the sending and receipt of system events (fire, detonate, command, etc). It provides a thread-safe way for the sim engine to send and receive such events, between both components within this sim engine and other remote applications.
Definition: eventManager.h:33
Contains the DtUUID class declaration.
Definition: communicationManager.h:38
DtNetworkManagerInterface is the base class which all network interfaces must be derived from...
Definition: networkManagerInterface.h:43
Definition: coordSystem.h:54
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
Definition: event.h:13
virtual ~DtNetworkManagerInterface()
Definition: networkManagerInterface.h:60
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:54
virtual void beginBulkCreate()
Signaling the start/end of bulk object creation.
Definition: networkManagerInterface.h:227
Definition: asyncJobServer.h:39
The DtNetworkInterfaceManager manages all network interfaces utilized by the sim engine. Often there is only one, but it is possible for there to be multiple. Each network interface is an instance of a subclass of DtNetworkManagerInterface. As state data is created or removed, the DtNetworkInterfaceManager will notify each of its network interfaces, so that they may create object network interfaces to output required state data to the network.
Definition: networkInterfaceManager.h:47
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
const char int mode
Definition: ioapi.h:38
DtNetworkManagerInterface()
constructor
Definition: networkManagerInterface.h:56
#define DT_DLL_vrfMsgTransport
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfCommunicationManagerDefines.h:26
AddEventResult
When adding an event, return a flag that represent the result of the addEvent. Return DoNotContinue i...
Definition: networkManagerInterface.h:49
virtual void endBulkCreate()
Definition: networkManagerInterface.h:228

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)