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 
46  virtual void sendStatus(const DtSimulationAddress& address);
47  virtual void sendFinalStatus(bool sendImmediately = false);
48  virtual void sendStatusToAll();
49 
51  virtual void setHeartbeatInterval(int heartbeatInterval);
52  virtual int heartbeatInterval();
53 
55  virtual DtInetAddr ipAddress() const;
56  virtual void setIpAddress(const DtInetAddr& addr);
57 
59  virtual unsigned int port() const;
60  virtual void setPort(unsigned int p);
61 
63  virtual int appIdRangeMax() const;
64  virtual void setAppIdRangeMax(int p);
65 
67  virtual int controlState() const;
68  virtual void setControlState(int state);
69 
71  virtual void clear();
72 
74  virtual void tick();
75 
77  virtual void processStatusRequestMessage(DtSimMessage * msg);
78 
80  static void statusRequestCallback(DtSimMessage * msg, void * usr);
81 
83  virtual bool isLoaded() const;
84  virtual void setIsLoaded(bool loaded);
85 
87  virtual void setScenarioRunId(int);
88  virtual int scenarioRunId() const;
89 
91  virtual bool isActive() const;
92  virtual void setIsActive(bool active);
93 
94  virtual bool canSimulate() const;
95  virtual void setCanSimulate(bool canSimulate);
96 
98  virtual DtTime exerciseStartTime() const;
99  virtual void setExerciseStartTime(DtTime time);
100 
103  virtual DtTime simTime() const;
104  virtual void setSimTime(DtTime time);
105 
108  virtual DtTime runDurationTime() const;
109  virtual void setRunDurationTime(DtTime);
110 
112  virtual DtTime simStartSimTime() const;
113  virtual void setSimStartSimTime(DtTime time);
114 
117  virtual double timeMultiplier() const;
118  virtual void setTimeMultiplier(double timeMultiplier);
119 
121  virtual void setLoadingScenario(bool);
122  virtual bool loadingScenario() const;
123 
125  virtual void setSavingScenario(bool);
126  virtual bool savingScenario() const;
127 
129  virtual void setImportingScenario(bool);
130  virtual bool importingScenario() const;
131 
133  virtual void setReinitializingScenario(bool);
134  virtual bool reinitializingScenario() const;
135 
137  virtual void setHostingDynamicTerrainServer(bool);
138  virtual bool hostingDynamicTerrainServer() const;
139 
141  virtual void setCreatingSimulationObjectGroup(bool);
142  virtual bool creatingSimulationObjectGroup() const;
143 
145  virtual void setClosingScenario(bool);
146  virtual bool closingScenario() const;
147 
149  virtual void setRollingBackScenario(bool);
150  virtual bool rollingBackScenario() const;
151 
154  virtual void setLoadedNewScenario(bool);
155  virtual bool loadedNewScenario() const;
156 
158  //virtual bool isOldParameterDb() const;
159  //virtual void setIsOldParameterDb(bool isOldParameterDb);
160 
162  virtual bool isCurrentParameterDb() const;
163  virtual void setIsCurrentParameterDb(bool isCurrentParameterDb);
164 
167  virtual bool isResourceMonitorEnabled() const;
168  virtual void setIsResourceMonitorEnabled(bool isEnabled);
169 
170  virtual void setIsTimeManaged(bool yesNo);
171  virtual bool isTimeManaged() const;
172 
176  virtual void setSendStatusOnChange(bool);
177  virtual bool sendStatusOnChange() const;
178 
180  virtual void addLocalObject(int kind, int domain);
181  virtual void removeLocalObject(int kind, int domain);
182 
183  virtual DtU32 scenarioCapabilities() const;
184  virtual void setScenarioCapabilities(DtU32 v);
185  virtual void setScenarioCapability(DtU32 v, bool b);
186 
187  virtual DtString applicationType() const;
188  virtual void setApplicationType(const DtString& type);
189 
190 protected:
192  static void simObjectAdded(const DtLocalObject*, void* usr);
193  virtual void processSimObjectAdded(const DtLocalObject*);
194 
195  static void simObjectAboutToBeRemoved(const DtLocalObject*, void* usr);
196  virtual void processSimObjectAboutToBeRemoved(const DtLocalObject*);
197 
198  static void simObjectConvertedToRemote(const DtLocalObject*, void* usr);
199  virtual void processSimObjectConvertedToRemote(const DtLocalObject*);
200 
201 protected:
202 
205 
207  DtVrfStatusPublisher& operator=(const DtVrfStatusPublisher& orig);
208 
209 protected:
213 
214  DtSimulationAddress myAddress;
223 
225  tbb::spin_mutex myStatusMutex;
226 };
bool myIsOldParameterDb
Definition: vrfStatusPublisher.h:218
Definition: ifStatus.h:50
bool myCanSimulate
Definition: vrfStatusPublisher.h:216
class DtLocalObjectManager:
Definition: localObjectManager.h:151
bool myIsActive
Definition: vrfStatusPublisher.h:215
DtIfStatus * myStatus
Definition: vrfStatusPublisher.h:224
int myHeartbeatInterval
Definition: vrfStatusPublisher.h:212
DtSimulationAddress myAddress
Definition: vrfStatusPublisher.h:214
DtVrfMessageInterface * myMessageIf
Status of this node.
Definition: vrfStatusPublisher.h:211
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:221
DtLocalObjectManager * myObjectManager
Definition: vrfStatusPublisher.h:222
bool mySendStatusOnChange
Definition: vrfStatusPublisher.h:220
bool myHasBeenModified
Definition: vrfStatusPublisher.h:219
#define DT_DLL_vrfcgf
This file is used to determine how to build.
Definition: vrfcgfDefines.h:25
DtTime myLastResponseTime
Definition: vrfStatusPublisher.h:217
tbb::spin_mutex myStatusMutex
Definition: vrfStatusPublisher.h:225
Definition: vrfMessageInterface.h:40
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)