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

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)