VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfStatusPublisher.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <vlutil/vlList.h>
12 #include <vlutil/vlTime.h>
13 #include <vl/hostStructs.h>
14 #include <vlutil/vlInetSocket.h>
15 #include <vlutil/vlInetAddr.h>
16 #include "vrfcgf/vrfcgfDefines.h"
17 #include <vrfmsgs/ifStatus.h>
18 #include <tbb/spin_mutex.h>
19 
20 class DtSimMessage;
21 class DtSimulationAddress;
23 class DtIfStatus;
25 class DtLocalObject;
26 
31 {
32 public:
33 
36 
38  virtual ~DtVrfStatusPublisher();
39 
40  virtual const DtSimulationAddress& address();
41  virtual void setAddress(const DtSimulationAddress& address);
42 
43  virtual const DtTime& lastResponseTime();
44  virtual void setLastResponseTime(const DtTime& time);
45 
47  virtual void setAlwaysSendStatusImmediately(bool);
49  {
50  return myAlwaysSendStatusImmediately;
51  }
52 
53  virtual void sendStatus(const DtSimulationAddress& address, bool sendImmediately = false);
54  virtual void sendFinalStatus(bool sendImmediately = false);
55  virtual void sendStatusToAll(bool sendImmediately = false);
56 
58  virtual void setHeartbeatInterval(int heartbeatInterval);
59  virtual int heartbeatInterval();
60 
62  virtual DtInetAddr ipAddress() const;
63  virtual void setIpAddress(const DtInetAddr& addr);
64 
66  virtual unsigned int port() const;
67  virtual void setPort(unsigned int p);
68 
70  virtual int appIdRangeMax() const;
71  virtual void setAppIdRangeMax(int p);
72 
74  virtual int controlState() const;
75  virtual void setControlState(int state);
76 
78  virtual void clear();
79 
81  virtual void tick();
82 
84  virtual void processStatusRequestMessage(DtSimMessage * msg);
85 
87  static void statusRequestCallback(DtSimMessage * msg, void * usr);
88 
90  virtual bool isLoaded() const;
91  virtual void setIsLoaded(bool loaded);
92 
94  virtual void setScenarioRunId(int);
95  virtual int scenarioRunId() const;
96 
98  virtual bool isActive() const;
99  virtual void setIsActive(bool active);
100 
101  virtual bool canSimulate() const;
102  virtual void setCanSimulate(bool canSimulate);
103 
105  virtual DtTime exerciseStartTime() const;
106  virtual void setExerciseStartTime(DtTime time);
107 
110  virtual DtTime simTime() const;
111  virtual void setSimTime(DtTime time);
112 
115  virtual DtTime runDurationTime() const;
116  virtual void setRunDurationTime(DtTime);
117 
119  virtual DtTime simStartSimTime() const;
120  virtual void setSimStartSimTime(DtTime time);
121 
124  virtual double timeMultiplier() const;
125  virtual void setTimeMultiplier(double timeMultiplier);
126 
128  virtual void setLoadingScenario(bool);
129  virtual bool loadingScenario() const;
130 
132  virtual void setSavingScenario(bool);
133  virtual bool savingScenario() const;
134 
136  virtual void setImportingScenario(bool);
137  virtual bool importingScenario() const;
138 
140  virtual void setReinitializingScenario(bool);
141  virtual bool reinitializingScenario() const;
142 
144  virtual void setHostingDynamicTerrainServer(bool);
145  virtual bool hostingDynamicTerrainServer() const;
146 
148  virtual void setCreatingSimulationObjectGroup(bool);
149  virtual bool creatingSimulationObjectGroup() const;
150 
152  virtual void setClosingScenario(bool);
153  virtual bool closingScenario() const;
154 
156  virtual void setRollingBackScenario(bool);
157  virtual bool rollingBackScenario() const;
158 
161  virtual void setLoadedNewScenario(bool);
162  virtual bool loadedNewScenario() const;
163 
165  //virtual bool isOldParameterDb() const;
166  //virtual void setIsOldParameterDb(bool isOldParameterDb);
167 
169  virtual bool isCurrentParameterDb() const;
170  virtual void setIsCurrentParameterDb(bool isCurrentParameterDb);
171 
174  virtual bool isResourceMonitorEnabled() const;
175  virtual void setIsResourceMonitorEnabled(bool isEnabled);
176 
177  virtual void setIsTimeManaged(bool yesNo);
178  virtual bool isTimeManaged() const;
179 
183  virtual void setSendStatusOnChange(bool);
184  virtual bool sendStatusOnChange() const;
185 
187  virtual void addLocalObject(int kind, int domain);
188  virtual void removeLocalObject(int kind, int domain);
189 
190  virtual DtU32 scenarioCapabilities() const;
191  virtual void setScenarioCapabilities(DtU32 v);
192  virtual void setScenarioCapability(DtU32 v, bool b);
193 
194  virtual DtString applicationType() const;
195  virtual void setApplicationType(const DtString& type);
196 
197 protected:
199  static void simObjectAdded(const DtLocalObject*, void* usr);
200  virtual void processSimObjectAdded(const DtLocalObject*);
201 
202  static void simObjectAboutToBeRemoved(const DtLocalObject*, void* usr);
203  virtual void processSimObjectAboutToBeRemoved(const DtLocalObject*);
204 
205  static void simObjectConvertedToRemote(const DtLocalObject*, void* usr);
206  virtual void processSimObjectConvertedToRemote(const DtLocalObject*);
207 
208 protected:
209 
212 
214  DtVrfStatusPublisher& operator=(const DtVrfStatusPublisher& orig);
215 
216 protected:
220 
221  DtSimulationAddress myAddress;
231 
233  tbb::spin_mutex myStatusMutex;
234 };
bool myIsOldParameterDb
Definition: vrfStatusPublisher.h:225
Definition: ifStatus.h:59
bool myCanSimulate
Definition: vrfStatusPublisher.h:223
class DtLocalObjectManager:
Definition: localObjectManager.h:157
bool myAlwaysSendStatusImmediately
Definition: vrfStatusPublisher.h:229
bool myIsActive
Definition: vrfStatusPublisher.h:222
DtIfStatus * myStatus
Definition: vrfStatusPublisher.h:232
int myHeartbeatInterval
Definition: vrfStatusPublisher.h:219
DtSimulationAddress myAddress
Definition: vrfStatusPublisher.h:221
bool alwaysSendStatusImmediately() const
Definition: vrfStatusPublisher.h:48
DtVrfMessageInterface * myMessageIf
Status of this node.
Definition: vrfStatusPublisher.h:218
File: simMsg.h.
Definition: simMessage.h:35
Instances of DtVrfStatusPublisher are used to send information about a VR-Forces simulation engine to...
Definition: vrfStatusPublisher.h:30
bool myLoadedNewScenario
Definition: vrfStatusPublisher.h:228
DtLocalObjectManager * myObjectManager
Definition: vrfStatusPublisher.h:230
bool mySendStatusOnChange
Definition: vrfStatusPublisher.h:227
bool myHasBeenModified
Definition: vrfStatusPublisher.h:226
#define DT_DLL_vrfcgf
This file is used to determine how to build.
Definition: vrfcgfDefines.h:25
DtTime myLastResponseTime
Definition: vrfStatusPublisher.h:224
tbb::spin_mutex myStatusMutex
Definition: vrfStatusPublisher.h:233
Definition: vrfMessageInterface.h:40
A locally simulated VRF object.
Definition: localObject.h:98

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)