VR-Forces 4.6 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,
65  };
66 
68  {
69  public:
71  : mySaving(false)
72  , myDe(de)
73  , myFrameRateReportPeriod(1)
74  , mySampleSize(50)
75  , myMonitoringReference(0)
76  , myFrameRateMean(0)
77  , myFrameRateMedian(0)
78  , myFrameStandardDeviation(0)
79  , myMinFrameRate(0)
80  , myMaxFrameRate(0)
81  , mySimTimeToRealTimeRatio(0)
82  {
83  }
84 
86  : myBackend(b)
87  , myDe(de)
88  , mySaving(false)
89  , myFrameRateReportPeriod(1)
90  , mySampleSize(50)
91  , myMonitoringReference(0)
92  , myFrameRateMean(0)
93  , myFrameRateMedian(0)
94  , myFrameStandardDeviation(0)
95  , myMinFrameRate(0)
96  , myMaxFrameRate(0)
97  , mySimTimeToRealTimeRatio(0)
98  {
99  }
100 
102  : myBackend(o.myBackend)
103  , mySaving(o.mySaving)
104  , myDe(o.myDe)
105  , myFrameRateMean(o.myFrameRateMean)
106  , myFrameRateMedian(o.myFrameRateMedian)
107  , myFrameStandardDeviation(o.myFrameStandardDeviation)
108  , myMinFrameRate(o.myMinFrameRate)
109  , myMaxFrameRate(o.myMaxFrameRate)
110  , mySimTimeToRealTimeRatio(o.mySimTimeToRealTimeRatio)
111  {
112  if (o.myMonitoringReference)
113  {
114  myMonitoringReference = o.myMonitoringReference;
115  (*myMonitoringReference)++;
116  }
117  }
118 
119  virtual ~DtVrfBackendState();
120 
121  DtVrfBackendState& operator=(const DtVrfBackendState& rhs);
122 
123  std::string displayName() const
124  {
125  return myBackend.address().string();
126  }
127 
128  const DtBackend& backend() const
129  {
130  return myBackend;
131  }
132 
133  DtBackend& backend()
134  {
135  return myBackend;
136  }
137 
138  void setBackend(const DtBackend& b)
139  {
140  myBackend = b;
141  }
142 
143  void setSaving(bool b)
144  {
145  mySaving = b;
146  }
147 
148  bool saving() const
149  {
150  return mySaving;
151  }
152 
153  virtual void startFrameRateMonitor();
154  virtual void stopFrameRateMonitor();
155 
156  boost::signal<void (const DtVrfBackendState&)> signal_frameRatesUpdated;
157 
158  public:
159  double frameRateMean() const
160  {
161  return myFrameRateMean;
162  }
163 
164  double frameRateMedian() const
165  {
166  return myFrameRateMedian;
167  }
168 
169  double frameRateStandardDeviation() const
170  {
171  return myFrameStandardDeviation;
172  }
173 
174  double frameRateMin() const
175  {
176  return myMinFrameRate;
177  }
178 
179  double frameRateMax() const
180  {
181  return myMaxFrameRate;
182  }
183 
184  double frameRateSimTimeToRealTimeRatio() const
185  {
186  return mySimTimeToRealTimeRatio;
187  }
188 
189  protected:
190  virtual void processFrameRateCallback(DtSimMessage * msg);
191 
192  protected:
195  bool mySaving;
199 
206  };
207 
210 
213 
215 
217  {
218  public:
220 
222  void setState(DtVrfBackendState& state)
223  {
224  DtVrfBackendState* backendState = dynamic_cast<DtVrfBackendState*>(myState);
225  if(backendState)
226  {
227  *backendState = state;
228 
229  if(mySimEntry)
230  {
231  mySimEntry->stateUpdated();
232  }
233  }
234  }
235 
236  void setBackend(const DtBackend& b)
237  {
238  ((DtVrfBackendState*)myState)->setBackend(b);
239  }
240 
241  const DtVrfBackendState& backend() const
242  {
243  return *((DtVrfBackendState*)myState);
244  }
245  };
246 }

Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)