9 #include <vlpi/simulationAddress.h>
10 #include <vlutil/vlTime.h>
11 #include <boost/signals2.hpp>
12 #include <boost/function.hpp>
17 namespace makVrfEvents
25 class DtStateDataManager;
41 double preAdvanceFrameTime;
76 return myNetworkInterfaceManager;
79 virtual void setSimulationAddress(
const DtSimulationAddress&);
80 const DtSimulationAddress& simulationAddress()
const;
81 const DtSimulationAddress&
applicationId()
const {
return simulationAddress(); };
87 return myEventManager;
93 return myParameterDatabase;
97 virtual void setNumCallbackThreads(
unsigned);
100 virtual bool typeIsPublishable(
const DtEntityType&)
const;
114 virtual bool waitingToAddObjects()
const;
117 virtual bool supportsOwnershipTransfer()
const;
131 virtual void removeManager(
const char*);
143 virtual void setUsePerfCounter(
bool);
150 virtual void setSessionId(
int);
158 virtual double elapsedRealTime()
const;
164 virtual void pause();
167 virtual void rewindScenario();
170 virtual void resetSimulation();
173 virtual void setSimTime(
double);
176 virtual void setFrameRateMode(
const DtString&
mode,
double deltaTime,
bool manageTime =
false);
179 virtual void setTimeMultiplier(
double);
182 virtual void setExerciseStartTime(
double);
184 virtual bool isPaused()
const;
185 virtual double approximateElapsedRealTime()
const;
186 virtual double absRealTime()
const;
187 virtual double timeMultiplier()
const;
188 virtual double exerciseStartTime()
const;
189 virtual bool isRunToCompleteFrameMode()
const;
190 virtual void setSimTimeProviderFunction(SimTimeProvideFcn f);
201 return myExerciseClock;
204 bool skippedLastFrame()
const;
212 virtual bool isConnectionless()
const;
215 virtual void removeAndDeleteAll(
const std::set<DtUUID>& except = std::set<DtUUID>());
219 virtual void reserve(
unsigned int);
225 virtual bool selfReflecting()
const;
229 virtual void setSelfReflecting(
bool);
231 virtual void beginBulkCreate();
232 virtual void endBulkCreate();
235 return myStateDataManager;
242 virtual bool rediscoverObjects();
static DtCommunicationManagerCreatorFcn theCommunicationManagerCreatorFcn
Definition: communicationManager.h:278
Instances of DtVrfParameterDb are the database of DtVrfObjectParameters objects used in the construct...
Definition: vrfParameterDb.h:41
boost::function< double(double &dt)> SimTimeProvideFcn
Definition: communicationManager.h:57
Definition: scenario.h:52
int sessionId() const
Definition: communicationManager.h:151
const DtSimulationAddress & applicationId() const
Definition: communicationManager.h:81
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
boost::signals2::signal< void(double simTime, double dT)> signal_beginFrame
Signal sent right before beginFrame is returned.
Definition: communicationManager.h:259
bool myOwnsStateDataManager
Definition: communicationManager.h:283
Contains the DtUUID class declaration.
DtExerciseClock * clock() const
Definition: communicationManager.h:199
double mySimTime
Definition: communicationManager.h:285
typedef int(ZCALLBACK *close_file_func) OF((voidpf opaque
double myLastDt
Definition: communicationManager.h:286
DtCommunicationManager *(* DtCommunicationManagerCreatorFcn)(const DtSimulationAddress &, makVrf::DtStateDataManager *, int)
Definition: communicationManager.h:36
boost::signals2::signal< void(bool &continueAdvance)> signal_aboutToAdvanceFrame
Sent before the state data manager advances its frame. Set continueAdvance to false to prevent the ad...
Definition: communicationManager.h:246
std::atomic< int > myNextEventNumber
Definition: communicationManager.h:290
boost::signals2::signal< void(DtNetworkManagerInterface *)> signal_interfaceAdded
Signal sent when an interface is added.
Definition: communicationManager.h:262
makVrfEvents::DtEventManager * myEventManager
Definition: communicationManager.h:277
DtNetworkManagerInterface is the base class which all network interfaces must be derived from...
Definition: networkManagerInterface.h:43
Definition: coordSystem.h:54
DtVrfParameterDb * myParameterDatabase
Definition: communicationManager.h:289
boost::signals2::signal< void()> signal_preEventManagerTick
Signal sent before the signal_beginFrame and before the event manager tick, but after state data mana...
Definition: communicationManager.h:256
boost::signals2::signal< void()> signal_frameAdvanced
Can be called by outside holders of this class if the frame cannot be advanced, however, other classes connect to this to be signaled for a post communication advance event. Will also be called from advanceFrame.
Definition: communicationManager.h:253
bool inFame() const
Definition: communicationManager.h:206
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:54
DtVrfParameterDb * parameterDatabase() const
Definition: communicationManager.h:91
DtSimulationAddress mySimulationAddress
Definition: communicationManager.h:279
boost::signals2::signal< void(DtNetworkManagerInterface *)> signal_interfaceRemoved
Signal sent when an interface is removed.
Definition: communicationManager.h:265
makVrf::DtStateDataManager * stateDataManager() const
Definition: communicationManager.h:233
Definition: asyncJobServer.h:39
makVrfEvents::DtEventManager * eventManager()
Definition: communicationManager.h:85
int mySessionId
Definition: communicationManager.h:284
virtual double simTime() const
Definition: communicationManager.h:192
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
DtNetworkInterfaceManager * myNetworkInterfaceManager
Definition: communicationManager.h:275
const char int mode
Definition: ioapi.h:38
SimTimeProvideFcn mySimTimeProviderFunction
Definition: communicationManager.h:287
DtNetworkInterfaceManager * networkInterfaceManager()
Definition: communicationManager.h:74
int myInFrame
Definition: communicationManager.h:288
boost::signals2::signal< void(makVrf::DtStateDataManager *)> signal_stateDataManagerChanged
Sent if a network manager is assigned with a different state data manager in it.
Definition: communicationManager.h:249
#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
makVrf::DtStateDataManager * myStateDataManager
Definition: communicationManager.h:276
Description: The Exercise Clock keeps track of current simulated time. When 'ticked', it advances simulation time based on elapsed real time since the last time it was ticked and a time-multiplier that allows the exercise clock to run faster or slower than real-time. The exercise clock also supports a pause/resume capability.
Definition: exerciseClock.h:27
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:73
DtExerciseClock * myExerciseClock
Backup for simulation time (absRealTime) if no network manager.
Definition: communicationManager.h:282