VR-Forces 4.1 Class Documentation
DtVrfBackendState.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2008 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtVrfBackendState.h,v $ $Revision: 1.3 $ $State: Exp $
7 ******************************************************************************/
8 
11 
13 
14 #pragma once
15 
16 #include <vrfGuiCore/vrfGuiCore.h>
17 
18 #include <vrvUtil/signalslib.h>
19 
21 #include <vrvCore/DtSimState.h>
22 #include <vrvCore/DtSimEntry.h>
23 #include <vrvCore/DtStateView.h>
24 
25 #include <vlpi/simulationAddress.h>
26 
27 #include <map>
28 
30 #include <vrfutil/backend.h>
31 
32 namespace makVrv
33 {
34  class DtMessage;
35 }
36 
37 class DtSimMessage;
38 
39 namespace makVrf
40 {
42  {
43  DtBackendLoadedState = 0x00000001,
44  DtBackendSimTime = 0x00000002,
45  DtBackendExerciseTime = 0x00000004,
46  DtBackendCanSimulate = 0x00000008,
47  DtBackendControlState = 0x00000010,
48  DtBackendSaving = 0x00000020,
49  DtBackendAdded = 0x00000040,
50  DtBackendRemoved = 0x00000080,
52  };
53 
55  {
56  public:
58  : mySaving(false)
59  , myDe(de)
60  , myFrameRateReportPeriod(1)
61  , mySampleSize(50)
62  , myMonitoringReference(0)
63  , myFrameRateMean(0)
64  , myFrameRateMedian(0)
65  , myFrameStandardDeviation(0)
66  , myMinFrameRate(0)
67  , myMaxFrameRate(0)
68  , mySimTimeToRealTimeRatio(0)
69  {
70  }
71 
73  : myBackend(b)
74  , myDe(de)
75  , mySaving(false)
76  , myFrameRateReportPeriod(1)
77  , mySampleSize(50)
78  , myMonitoringReference(0)
79  , myFrameRateMean(0)
80  , myFrameRateMedian(0)
81  , myFrameStandardDeviation(0)
82  , myMinFrameRate(0)
83  , myMaxFrameRate(0)
84  , mySimTimeToRealTimeRatio(0)
85  {
86  }
87 
89  : myBackend(o.myBackend)
90  , mySaving(o.mySaving)
91  , myDe(o.myDe)
92  , myFrameRateMean(o.myFrameRateMean)
93  , myFrameRateMedian(o.myFrameRateMedian)
94  , myFrameStandardDeviation(o.myFrameStandardDeviation)
95  , myMinFrameRate(o.myMinFrameRate)
96  , myMaxFrameRate(o.myMaxFrameRate)
97  , mySimTimeToRealTimeRatio(o.mySimTimeToRealTimeRatio)
98  {
100  {
101  myMonitoringReference = o.myMonitoringReference;
102  (*myMonitoringReference)++;
103  }
104  }
105 
106  virtual ~DtVrfBackendState();
107 
108  DtVrfBackendState& operator=(const DtVrfBackendState& rhs);
109 
110  std::string displayName() const
111  {
112  return myBackend.address().string();
113  }
114 
115  const DtBackend& backend() const
116  {
117  return myBackend;
118  }
119 
120  DtBackend& backend()
121  {
122  return myBackend;
123  }
124 
125  void setBackend(const DtBackend& b)
126  {
127  myBackend = b;
128  }
129 
130  void setSaving(bool b)
131  {
132  mySaving = b;
133  }
134 
135  bool saving() const
136  {
137  return mySaving;
138  }
139 
140  virtual void startFrameRateMonitor();
141  virtual void stopFrameRateMonitor();
142 
143  boost::signal<void (const DtVrfBackendState&)> signal_frameRatesUpdated;
144 
145  public:
146  double frameRateMean() const
147  {
148  return myFrameRateMean;
149  }
150 
151  double frameRateMedian() const
152  {
153  return myFrameRateMedian;
154  }
155 
156  double frameRateStandardDeviation() const
157  {
158  return myFrameStandardDeviation;
159  }
160 
161  double frameRateMin() const
162  {
163  return myMinFrameRate;
164  }
165 
166  double frameRateMax() const
167  {
168  return myMaxFrameRate;
169  }
170 
171  double frameRateSimTimeToRealTimeRatio() const
172  {
173  return mySimTimeToRealTimeRatio;
174  }
175 
176  protected:
177  virtual void processFrameRateCallback(DtSimMessage * msg);
178 
179  protected:
182  bool mySaving;
186 
193  };
194 
197 
200 
202 
204  {
205  public:
207 
209  void setState(DtVrfBackendState& state)
210  {
211  DtVrfBackendState* backendState = dynamic_cast<DtVrfBackendState*>(myState);
212  if(backendState)
213  {
214  *backendState = state;
215 
216  if(mySimEntry)
217  {
218  mySimEntry->stateUpdated();
219  }
220  }
221  }
222 
223  void setBackend(const DtBackend& b)
224  {
225  ((DtVrfBackendState*)myState)->setBackend(b);
226  }
227 
228  const DtVrfBackendState& backend() const
229  {
230  return *((DtVrfBackendState*)myState);
231  }
232  };
233 }

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)