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

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)