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

Document ID: Generated on Mon Jul 4 01:00:18 EDT 2016 from SVN revision 166489
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)