VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfBackendState.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include <vrfGuiCore/vrfGuiCore.h>
14 
15 #include <vrvUtil/signalslib.h>
16 
18 #include <vrvCore/DtSimState.h>
19 #include <vrvCore/DtSimEntry.h>
20 #include <vrvCore/DtStateView.h>
21 
22 #include <vlpi/simulationAddress.h>
23 
24 #include <map>
25 
27 #include <vrfutil/backend.h>
28 
29 namespace makVrv
30 {
31  class DtMessage;
32 }
33 
34 class DtSimMessage;
35 
36 namespace makVrf
37 {
39  {
40  DtBackendLoadedState = 0x00000001,
41  DtBackendSimTime = 0x00000002,
42  DtBackendExerciseTime = 0x00000004,
43  DtBackendCanSimulate = 0x00000008,
44  DtBackendControlState = 0x00000010,
45  DtBackendSaving = 0x00000020,
46  DtBackendAdded = 0x00000040,
47  DtBackendRemoved = 0x00000080,
51  DtBackendClosedState = 0x00000800,
57  DtBackendObjectCount = 0x00020000,
67  };
68 
70  {
71  public:
73  : mySaving(false)
74  , myDe(de)
75  , myFrameRateReportPeriod(1)
76  , mySampleSize(50)
77  , myMonitoringReference(0)
78  , myFrameRateMean(0)
79  , myFrameRateMedian(0)
80  , myFrameStandardDeviation(0)
81  , myMinFrameRate(0)
82  , myMaxFrameRate(0)
83  , mySimTimeToRealTimeRatio(0)
84  {
85  }
86 
88  : myBackend(b)
89  , myDe(de)
90  , mySaving(false)
91  , myFrameRateReportPeriod(1)
92  , mySampleSize(50)
93  , myMonitoringReference(0)
94  , myFrameRateMean(0)
95  , myFrameRateMedian(0)
96  , myFrameStandardDeviation(0)
97  , myMinFrameRate(0)
98  , myMaxFrameRate(0)
99  , mySimTimeToRealTimeRatio(0)
100  {
101  }
102 
104  : myBackend(o.myBackend)
105  , mySaving(o.mySaving)
106  , myDe(o.myDe)
107  , myFrameRateMean(o.myFrameRateMean)
108  , myFrameRateMedian(o.myFrameRateMedian)
109  , myFrameStandardDeviation(o.myFrameStandardDeviation)
110  , myMinFrameRate(o.myMinFrameRate)
111  , myMaxFrameRate(o.myMaxFrameRate)
112  , mySimTimeToRealTimeRatio(o.mySimTimeToRealTimeRatio)
113  {
114  if (o.myMonitoringReference)
115  {
116  myMonitoringReference = o.myMonitoringReference;
117  (*myMonitoringReference)++;
118  }
119  }
120 
121  virtual ~DtVrfBackendState();
122 
123  DtVrfBackendState& operator=(const DtVrfBackendState& rhs);
124 
127  {
128  return myBackend.status();
129  }
130 
131  std::string displayName() const
132  {
133  return myBackend.address().string();
134  }
135 
136  const DtBackend& backend() const
137  {
138  return myBackend;
139  }
140 
142  {
143  return myBackend;
144  }
145 
146  void setBackend(const DtBackend& b)
147  {
148  myBackend = b;
149  }
150 
151  void setSaving(bool b)
152  {
153  mySaving = b;
154  }
155 
156  bool saving() const
157  {
158  return mySaving;
159  }
160 
161  virtual void startFrameRateMonitor();
162  virtual void stopFrameRateMonitor();
163 
164  boost::signals2::signal<void (const DtVrfBackendState&)> signal_frameRatesUpdated;
165 
166  public:
167  double frameRateMean() const
168  {
169  return myFrameRateMean;
170  }
171 
172  double frameRateMedian() const
173  {
174  return myFrameRateMedian;
175  }
176 
178  {
179  return myFrameStandardDeviation;
180  }
181 
182  double frameRateMin() const
183  {
184  return myMinFrameRate;
185  }
186 
187  double frameRateMax() const
188  {
189  return myMaxFrameRate;
190  }
191 
193  {
194  return mySimTimeToRealTimeRatio;
195  }
196 
197  protected:
198  virtual void processFrameRateCallback(DtSimMessage * msg);
199 
200  protected:
203  bool mySaving;
207 
214  };
215 
218 
221 
223 
225  {
226  public:
228 
231  {
232  DtVrfBackendState* backendState = dynamic_cast<DtVrfBackendState*>(myState);
233  if(backendState)
234  {
235  *backendState = state;
236 
237  if(mySimEntry)
238  {
239  mySimEntry->stateUpdated();
240  }
241  }
242  }
243 
244  void setBackend(const DtBackend& b)
245  {
246  ((DtVrfBackendState*)myState)->setBackend(b);
247  }
248 
249  const DtVrfBackendState& backend() const
250  {
251  return *((DtVrfBackendState*)myState);
252  }
253  };
254 }
makVrv::DtStateView< DtVrfBackendState > DtVrfBackendStateView
Definition: vrfBackendState.h:222
Definition: vrfBackendState.h:48
Definition: vrfBackendState.h:69
double myFrameRateMedian
Definition: vrfBackendState.h:209
int * myMonitoringReference
Definition: vrfBackendState.h:206
double frameRateMedian() const
Definition: vrfBackendState.h:172
Definition: vrfBackendState.h:46
void setBackend(const DtBackend &b)
Definition: vrfBackendState.h:146
double frameRateStandardDeviation() const
Definition: vrfBackendState.h:177
The IGI Message.
Definition: DtMessage.h:33
DT_DLL_VRFGUICORE makVrv::DtMessage & operator<<(makVrv::DtMessage &msg, const DtVrlinkNetworkUpdateSimulatedAggregateState &state)
Encode a DtVrlinkSimulatedEnvironmentState into a DtMessage.
Definition: vrfBackendState.h:58
DtVrfBackendState(makVrv::DtDe &de)
Definition: vrfBackendState.h:72
Definition: vrfBackendState.h:45
Definition: vrfBackendState.h:65
Definition: vrfBackendState.h:56
makVrv::DtDe & myDe
Definition: vrfBackendState.h:201
double myMaxFrameRate
Definition: vrfBackendState.h:212
const DtBackend & backend() const
Definition: vrfBackendState.h:136
DtBackendChangedStates
Definition: vrfBackendState.h:38
Definition: vrfBackendState.h:47
Contains makVrv::DtStateView class.
double myMinFrameRate
Definition: vrfBackendState.h:211
Definition: vrfBackendState.h:62
void setBackend(const DtBackend &b)
Definition: vrfBackendState.h:244
Definition: vrfBackendState.h:60
DtBackend & backend()
Definition: vrfBackendState.h:141
std::string displayName() const
Definition: vrfBackendState.h:131
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Instances of DtBackend are created and maintained by a DtVrfBackendListener, and are containers for d...
Definition: backend.h:51
bool saving() const
Definition: vrfBackendState.h:156
Definition: vrfBackendState.h:57
Definition: vrfBackendState.h:44
bool mySaving
Definition: vrfBackendState.h:203
double frameRateSimTimeToRealTimeRatio() const
Definition: vrfBackendState.h:192
Definition: vrfBackendState.h:49
Definition: vrfBackendState.h:54
DtBackend myBackend
Definition: vrfBackendState.h:202
Contains makVrv::DtSimEntry class.
const DtVrfBackendState & backend() const
Definition: vrfBackendState.h:249
double frameRateMin() const
Definition: vrfBackendState.h:182
double frameRateMean() const
Definition: vrfBackendState.h:167
double frameRateMax() const
Definition: vrfBackendState.h:187
File: simMsg.h.
Definition: simMessage.h:35
Definition: vrfBackendState.h:55
double myFrameStandardDeviation
Definition: vrfBackendState.h:210
A DtStateView is a the interface to simulation state information.
Definition: DtStateView.h:52
Definition: vrfBackendState.h:63
int mySampleSize
Definition: vrfBackendState.h:205
Definition: vrfBackendState.h:64
Definition: vrfBackendState.h:50
Definition: vrfBackendState.h:40
DtBackend::Status status() const
Current back-end status.
Definition: vrfBackendState.h:126
double myFrameRateMean
Definition: vrfBackendState.h:208
Definition: vrfBackendState.h:51
Definition: vrfBackendState.h:61
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
double myFrameRateReportPeriod
Definition: vrfBackendState.h:204
void setState(DtVrfBackendState &state)
Copy state into myState. Tell the DtSimEntry that the state has been updated.
Definition: vrfBackendState.h:230
Contains makVrv::DtSimStateObject class.
DtVrfBackendState(const DtVrfBackendState &o)
Definition: vrfBackendState.h:103
Definition: vrfBackendState.h:66
boost::signals2::signal< void(const DtVrfBackendState &)> signal_frameRatesUpdated
Definition: vrfBackendState.h:164
A DtSimStateObject is the base class for all simulation state objects.
Definition: DtSimStateObject.h:28
A DtSimState is the base class for all state objects.
Definition: DtSimState.h:22
void setSaving(bool b)
Definition: vrfBackendState.h:151
Status
Definition: backend.h:54
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Contains makVrv::DtSimState class.
Definition: vrfBackendState.h:52
Definition: vrfBackendState.h:42
double mySimTimeToRealTimeRatio
Definition: vrfBackendState.h:213
Definition: vrfBackendState.h:53
DT_DLL_VRFGUICORE makVrv::DtMessage & operator>>(makVrv::DtMessage &msg, DtVrlinkSimulatedAggregateState &state)
Decode a DtVrlinkSimulatedEnvironmentState from a DtMessage.
Definition: vrfBackendState.h:224
Definition: vrfBackendState.h:41
Definition: vrfBackendState.h:43
DtVrfBackendState(makVrv::DtDe &de, const DtBackend &b)
Definition: vrfBackendState.h:87

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)