VR-Forces 4.7 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 
125  std::string displayName() const
126  {
127  return myBackend.address().string();
128  }
129 
130  const DtBackend& backend() const
131  {
132  return myBackend;
133  }
134 
135  DtBackend& backend()
136  {
137  return myBackend;
138  }
139 
140  void setBackend(const DtBackend& b)
141  {
142  myBackend = b;
143  }
144 
145  void setSaving(bool b)
146  {
147  mySaving = b;
148  }
149 
150  bool saving() const
151  {
152  return mySaving;
153  }
154 
155  virtual void startFrameRateMonitor();
156  virtual void stopFrameRateMonitor();
157 
158  boost::signal<void (const DtVrfBackendState&)> signal_frameRatesUpdated;
159 
160  public:
161  double frameRateMean() const
162  {
163  return myFrameRateMean;
164  }
165 
166  double frameRateMedian() const
167  {
168  return myFrameRateMedian;
169  }
170 
171  double frameRateStandardDeviation() const
172  {
173  return myFrameStandardDeviation;
174  }
175 
176  double frameRateMin() const
177  {
178  return myMinFrameRate;
179  }
180 
181  double frameRateMax() const
182  {
183  return myMaxFrameRate;
184  }
185 
186  double frameRateSimTimeToRealTimeRatio() const
187  {
188  return mySimTimeToRealTimeRatio;
189  }
190 
191  protected:
192  virtual void processFrameRateCallback(DtSimMessage * msg);
193 
194  protected:
197  bool mySaving;
201 
208  };
209 
212 
215 
217 
219  {
220  public:
222 
224  void setState(DtVrfBackendState& state)
225  {
226  DtVrfBackendState* backendState = dynamic_cast<DtVrfBackendState*>(myState);
227  if(backendState)
228  {
229  *backendState = state;
230 
231  if(mySimEntry)
232  {
233  mySimEntry->stateUpdated();
234  }
235  }
236  }
237 
238  void setBackend(const DtBackend& b)
239  {
240  ((DtVrfBackendState*)myState)->setBackend(b);
241  }
242 
243  const DtVrfBackendState& backend() const
244  {
245  return *((DtVrfBackendState*)myState);
246  }
247  };
248 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)