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

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)