VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 #include <vlpi/simulationAddress.h>
15 #include <boost/signals2.hpp>
16 
17 #include <map>
18 
20 #include <vrfutil/backend.h>
21 
22 #include <boost/signals2.hpp>
23 
24 namespace makVrv
25 {
26  class DtMessage;
27  class DtDe;
28 }
29 
30 class DtSimMessage;
31 
32 namespace makVrf
33 {
35  {
36  DtBackendLoadedState = 0x00000001,
37  DtBackendSimTime = 0x00000002,
38  DtBackendExerciseTime = 0x00000004,
39  DtBackendCanSimulate = 0x00000008,
40  DtBackendControlState = 0x00000010,
41  DtBackendSaving = 0x00000020,
42  DtBackendAdded = 0x00000040,
43  DtBackendRemoved = 0x00000080,
47  DtBackendClosedState = 0x00000800,
53  DtBackendObjectCount = 0x00020000,
63  };
64 
66  {
67  public:
69  : mySaving(false)
70  , myDe(de)
71  , myFrameRateReportPeriod(3)
72  , mySampleSize(50)
73  , myMonitoringReference(0)
74  , mySimTimeToRealTimeRatio(0)
75  , myNumberOfCPUs(0)
76  , myNumberOfTickThreads(0)
77  , myTickingPublishersDuringObjectTick(false)
78  {
79  }
80 
82  : myBackend(b)
83  , myDe(de)
84  , mySaving(false)
85  , myFrameRateReportPeriod(3)
86  , mySampleSize(50)
87  , myMonitoringReference(0)
88  , mySimTimeToRealTimeRatio(0)
89  , myNumberOfCPUs(0)
90  , myNumberOfTickThreads(0)
91  , myTickingPublishersDuringObjectTick(false)
92  {
93  }
94 
96  : myBackend(o.myBackend)
97  , mySaving(o.mySaving)
98  , myDe(o.myDe)
99  , mySectionTimes(o.mySectionTimes)
100  , mySimTimeToRealTimeRatio(o.mySimTimeToRealTimeRatio)
101  , myNumberOfCPUs(o.myNumberOfCPUs)
102  , myNumberOfTickThreads(o.myNumberOfTickThreads)
103  , myTickingPublishersDuringObjectTick(o.myTickingPublishersDuringObjectTick)
104  {
105  if (o.myMonitoringReference)
106  {
107  myMonitoringReference = o.myMonitoringReference;
108  (*myMonitoringReference)++;
109  }
110  }
111 
112  virtual ~DtVrfBackendState();
113 
114  DtVrfBackendState& operator=(const DtVrfBackendState& rhs);
115 
118  {
119  return myBackend.status();
120  }
121 
122  std::string displayName() const
123  {
124  return myBackend.address().string();
125  }
126 
127  const DtBackend& backend() const
128  {
129  return myBackend;
130  }
131 
133  {
134  return myBackend;
135  }
136 
137  void setBackend(const DtBackend& b)
138  {
139  myBackend = b;
140  }
141 
142  void setSaving(bool b)
143  {
144  mySaving = b;
145  }
146 
147  bool saving() const
148  {
149  return mySaving;
150  }
151 
152  void setNumberOfCPUs(short s)
153  {
154  myNumberOfCPUs = s;
155  }
156 
158  {
159  myTickingPublishersDuringObjectTick = s;
160  }
161 
163  {
164  myNumberOfTickThreads = s;
165  }
166 
167  virtual void startFrameRateMonitor(double period = -1);
168  virtual void stopFrameRateMonitor();
169 
170  boost::signals2::signal<void (const DtVrfBackendState&)> signal_frameRatesUpdated;
171 
172  public:
173  int numSections() const;
174  int section(int);
175  double frameRateMean(int section = -1) const;
176  double frameRateMedian(int section = -1) const;
177  double frameRateStandardDeviation(int section = -1) const;
178  double frameRateMin(int section = -1) const;
179  double frameRateMax(int section = -1) const;
180 
182  {
183  return mySimTimeToRealTimeRatio;
184  }
185 
187  {
188  return mySectionTimes;
189  }
190 
192  {
193  return myTickingPublishersDuringObjectTick;
194  }
195 
196  short numberOfCPUs() const
197  {
198  return myNumberOfCPUs;
199  }
200 
201  short numberOfTickThreads() const
202  {
203  return myNumberOfTickThreads;
204  }
205 
206  protected:
207  virtual void processFrameRateCallback(DtSimMessage * msg);
208 
209  protected:
212  bool mySaving;
216 
222  };
223 
226 
229 }
Definition: vrfBackendState.h:44
Definition: vrfBackendState.h:65
int * myMonitoringReference
Definition: vrfBackendState.h:215
Definition: vrfBackendState.h:42
void setBackend(const DtBackend &b)
Definition: vrfBackendState.h:137
The IGI Message. Is easily encoded and decoding using stream operators. It also provides validation d...
Definition: DtMessage.h:30
Definition: vrfBackendState.h:54
DtVrfBackendState(makVrv::DtDe &de)
Definition: vrfBackendState.h:68
Definition: vrfBackendState.h:41
Definition: vrfBackendState.h:61
Definition: vrfBackendState.h:52
makVrv::DtDe & myDe
Definition: vrfBackendState.h:210
const DtBackend & backend() const
Definition: vrfBackendState.h:127
bool tickingPublishersDuringObjectTick() const
Definition: vrfBackendState.h:191
DtBackendChangedStates
Definition: vrfBackendState.h:34
std::map< int, SectionTime > SectionTimes
Definition: backend.h:63
Definition: vrfBackendState.h:43
Definition: vrfBackendState.h:58
void setTickingPublishersDuringObjectTick(bool s)
Definition: vrfBackendState.h:157
Definition: vrfBackendState.h:56
short numberOfCPUs() const
Definition: vrfBackendState.h:196
DtBackend & backend()
Definition: vrfBackendState.h:132
std::string displayName() const
Definition: vrfBackendState.h:122
#define DT_DLL_VRFGUICORE
Contains DLL export macros.
Definition: vrfGuiCore.h:25
Instances of DtBackend are created and maintained by a DtVrfBackendListener, and are containers for d...
Definition: backend.h:51
bool saving() const
Definition: vrfBackendState.h:147
Definition: vrfBackendState.h:53
short myNumberOfCPUs
Definition: vrfBackendState.h:219
Definition: vrfBackendState.h:40
bool mySaving
Definition: vrfBackendState.h:212
double frameRateSimTimeToRealTimeRatio() const
Definition: vrfBackendState.h:181
DT_DLL_VRFGUICORE std::ostringstream & operator<<(std::ostringstream &, const DtStreamString &)
Definition: vrfBackendState.h:45
Definition: vrfBackendState.h:50
DtBackend myBackend
Definition: vrfBackendState.h:211
void setNumberOfTickThreads(short s)
Definition: vrfBackendState.h:162
File: simMsg.h.
Definition: simMessage.h:35
Definition: vrfBackendState.h:51
void setNumberOfCPUs(short s)
Definition: vrfBackendState.h:152
Definition: vrfBackendState.h:59
int mySampleSize
Definition: vrfBackendState.h:214
Definition: vrfBackendState.h:60
Definition: vrfBackendState.h:46
Definition: vrfBackendState.h:36
bool myTickingPublishersDuringObjectTick
Definition: vrfBackendState.h:221
DtBackend::Status status() const
Current back-end status.
Definition: vrfBackendState.h:117
Definition: vrfBackendState.h:47
Definition: vrfBackendState.h:57
const DtBackend::SectionTimes & sectionTimes() const
Definition: vrfBackendState.h:186
double myFrameRateReportPeriod
Definition: vrfBackendState.h:213
DtVrfBackendState(const DtVrfBackendState &o)
Definition: vrfBackendState.h:95
Definition: vrfBackendState.h:62
boost::signals2::signal< void(const DtVrfBackendState &)> signal_frameRatesUpdated
Definition: vrfBackendState.h:170
void setSaving(bool b)
Definition: vrfBackendState.h:142
Status
Definition: backend.h:66
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
DT_DLL_VRFGUICORE std::istringstream & operator>>(std::istringstream &, DtStreamString &)
Definition: vrfBackendState.h:48
Definition: vrfBackendState.h:38
short myNumberOfTickThreads
Definition: vrfBackendState.h:220
DtBackend::SectionTimes mySectionTimes
Definition: vrfBackendState.h:217
double mySimTimeToRealTimeRatio
Definition: vrfBackendState.h:218
Definition: vrfBackendState.h:49
Definition: vrfBackendState.h:37
Definition: vrfBackendState.h:39
DtVrfBackendState(makVrv::DtDe &de, const DtBackend &b)
Definition: vrfBackendState.h:81
short numberOfTickThreads() const
Definition: vrfBackendState.h:201

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)