VR-Forces 5.0.2 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 
12 #include <memory>
13 
14 class DtOutputStream;
15 class DtEntityType;
18 class DtVrfParameterDb;
19 class DtScenario;
20 class Coordinate_System;
21 class DtObjectType;
22 
23 namespace makVrf
24 {
25  class DtStateData;
26 }
27 
28 namespace makVrfEvents
29 {
30  class DtEvent;
31  class DtEventManager;
32 }
33 
34 class DtUUID;
35 
41 {
42 public:
43 
47  {
48  DoNotContinue = 0,
49  Continue = 0x00000001,
50  };
51 
54  {
55  }
56 
58  {
59  }
60 
62  virtual void beginFrame(double simTime) = 0;
63 
66  virtual bool preAdvanceFrame() = 0;
67 
70  virtual void advanceFrame(double* networkFrameTime = nullptr) = 0;
71 
73  virtual const char* type() const = 0;
74 
77  virtual bool stateDataAdded(makVrf::DtStateData*) = 0;
78 
80  virtual void stateDataAboutToBeRemoved(const makVrf::DtStateData*) = 0;
81 
83  virtual bool printDataToStream(const DtUUID&, DtOutputStream&) const = 0;
84 
86  virtual void setInterest(const DtVector& geocentricCenter, double radius) = 0;
87 
89  virtual bool init(DtCommunicationManager*) = 0;
90 
92  virtual void reserve(unsigned numToReserve) = 0;
93 
95  virtual void setNumCallbackThreads(unsigned) = 0;
96 
98  virtual void setEnabled(bool) = 0;
99 
102  virtual DtString nextEventId(const DtString& = DtString::nullString()) = 0;
103 
105  virtual std::string protocol() const = 0;
106 
108  virtual void setRunFullyThreaded(bool) = 0;
109 
111  virtual void printReflectedObjectCounts() const = 0;
112 
115  virtual void requestUpdatesForRemoteNonVrfObjects() const = 0;
116 
118  virtual const makVrf::DtStateData* stateDataForGlobalId(const DtString&) const = 0;
119 
121  virtual void setCoordinateSystem(const Coordinate_System*) = 0;
122 
124  virtual void setParameterDatabase(DtVrfParameterDb*) = 0;
125 
127  virtual unsigned int maxNameLengthForType(const DtObjectType&) const = 0;
128 
130  virtual void setVrfSessionId(int) = 0;
131 
133  virtual void setVrfMessageVersionSupported(int) = 0;
134 
136  virtual void startScenarioLoad(bool) = 0;
137 
139  virtual void endScenarioLoad(bool) = 0;
140 
142  virtual void setSiteAppId(int, int) = 0;
143 
146  virtual AddEventResult addEvent(const makVrfEvents::DtEvent&, bool& selfReflected) = 0;
147 
149  virtual AddEventResult sendEvent(const makVrfEvents::DtEvent&) = 0;
150 
152  virtual void setEventManager(makVrfEvents::DtEventManager*) = 0;
153 
155  virtual void resetSimulation() = 0;
156 
158  virtual void setFrameRateMode(const DtString& mode, double deltaTime, bool manageTime = false) = 0;
159 
161  virtual void rewindScenario() = 0;
162 
164  virtual void run() = 0;
165 
167  virtual void pause() = 0;
168 
170  virtual bool typeIsPublishable(const DtEntityType&) const = 0;
171 
173  virtual void setSimTime(double) = 0;
174 
176  virtual void setTimeMultiplier(double) = 0;
177 
179  virtual void setExerciseStartTime(double) = 0;
180 
182  virtual bool validateScenario(const DtScenario&, DtString& error) const = 0;
183 
185  virtual double determineSimTime(double& dt) { return 0; };
186 
188  virtual bool hasSimulationTime() const = 0;
189 
191  virtual void removeAndDeleteAll() = 0;
192 
195  virtual bool needsUnpublishedDatabase() const = 0;
196 
198  virtual bool selfReflecting() const = 0;
199 
202  virtual void setSelfReflecting(bool) = 0;
203 
205  virtual bool rediscoverObjects() = 0;
206 
208  virtual bool publishingOnLegionNetwork() const = 0;
209 
211  virtual void beginBulkCreate() {}
212  virtual void endBulkCreate() {}
213 
214 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:38
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
Definition: objectType.h:27
DtNetworkManagerInterface is the base class which all network interfaces must be derived from...
Definition: networkManagerInterface.h:40
Definition: coordSystem.h:54
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:336
Definition: event.h:13
virtual ~DtNetworkManagerInterface()
Definition: networkManagerInterface.h:57
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:50
virtual void beginBulkCreate()
Signaling the start/end of bulk object creation.
Definition: networkManagerInterface.h:211
Definition: asyncJobServer.h:39
virtual double determineSimTime(double &dt)
Determine the next simulation time. Implement only if hasSimulationTime returns true.
Definition: networkManagerInterface.h:185
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:44
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:53
#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:46
virtual void endBulkCreate()
Definition: networkManagerInterface.h:212

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)