MAK RTIspy API Documentation for HLA 1516
federateStatsDialog.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2013 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
6 #ifndef federateStatsDialog_H_
7 #define federateStatsDialog_H_
8 
9 #include "rtiMsConfig.h"
10 #include <vlutil/vlMachineTypes.h>
11 #include <vlutil/vlFilename.h>
12 #include "assistantEnums.h"
13 #include <qmainwindow.h>
14 #include <map>
15 #include "rtiAmbAPITypes.h"
16 #include "fedAmbAPITypes.h"
17 #include "rtiMsgKind.h"
21 #include "assistantInfo.h"
23 
26 
27 class QGridLayout;
28 class QVBoxLayout;
29 class QHBoxLayout;
30 class QLabel;
31 class QPixmap;
32 class QStandardItemModel;
33 class QSortFilterProxyModel;
34 class QDialogButtonBox;
36 
37 
41 {
42  Q_OBJECT
43 
44 public:
45 
47  {
53 
54  DtMsgModelNumberOfColumns
55  };
56 
58  {
65 
66  DtRtiAmbServicesModelNumberOfColumns
67  };
68 
70  {
77 
78  DtFedAmbCallbacksModelNumberOfColumns
79  };
80 
82  {
91 
92  DtObjectModelNumberOfColumns
93  };
94 
96  {
103 
104  DtInteractionModelNumberOfColumns
105  };
106 
108 
109  const char* getObjectHeader(const DtFederateStatisticsDialogObjectModelColumnEnum col) const;
110  const char* getInteractionHeader( const DtFederateStatisticsDialogInteractionModelColumnEnum col ) const;
111  const char* getRtiAmbServicesHeader( const DtFederateStatisticsDialogRtiAmbServicesModelColumnEnum col ) const;
112  const char* getFedAmbCallbacksHeader( const DtFederateStatisticsDialogFedAmbCallbacksModelColumnEnum col ) const;
113  const char* getMsgHeader( const DtFederateStatisticsDialogMsgModelColumnEnum col ) const;
115 
117 
118  const char* getObjectHeaderToolTip(const DtFederateStatisticsDialogObjectModelColumnEnum col) const;
119  const char* getInteractionHeaderToolTip( const DtFederateStatisticsDialogInteractionModelColumnEnum col ) const;
120  const char* getRtiAmbServicesHeaderToolTip( const DtFederateStatisticsDialogRtiAmbServicesModelColumnEnum col ) const;
121  const char* getFedAmbCallbacksHeaderToolTip( const DtFederateStatisticsDialogFedAmbCallbacksModelColumnEnum col ) const;
122  const char* getMsgHeaderToolTip( const DtFederateStatisticsDialogMsgModelColumnEnum col ) const;
124 
125 
127  DtFederateStatisticsDialog(const MAKRti::DtFilename& configDir,
128  QWidget* parent = 0, Qt::WindowFlags f = 0);
129 
131  virtual ~DtFederateStatisticsDialog();
132 
134  virtual QSize sizeHint() const;
135 
137  void setFederateIcon(const QPixmap& icon);
138 
140  void setFederateType(const QString& t);
141 
143  void setFederateName(const QString& n);
144 
146  void setFederateProcess(const QString& p);
147 
149  void setFederateHost(const QString& h);
150 
152  void setFederationName(const QString& n);
153 
154  virtual void closeEvent(QCloseEvent * event);
155 
157 
158  virtual void updateMsgTablesAndGraphs(DtFloat64 currTime, const std::vector<DtRtiMsgKind>& msgKinds, const std::vector<DtU32>& msgNumSent,
159  const std::vector<DtU32>& msgNumReceived, const std::vector<DtU32>& msgBytesSent,
160  const std::vector<DtU32>& msgBytesReceived);
161 
162  virtual void updateRtiAmbTablesAndGraphs(DtFloat64 currTime, const std::vector<DtRtiAmbAPIType>& rtiAmbTypes,
163  const std::vector<DtU32>& rtiAmbNumCalls, const std::vector<DtFloat64>& rtiAmbTotalTime,
164  const std::vector<DtFloat64>& rtiAmbAvgTime, const std::vector<DtFloat64>& rtiAmbMinTime,
165  const std::vector<DtFloat64>& rtiAmbMaxTime);
166 
167  virtual void updateFedAmbTablesAndGraphs(DtFloat64 currTime, const std::vector<DtFedAmbAPIType>& fedAmbTypes,
168  const std::vector<DtU32>& fedAmbNumCalls, const std::vector<DtFloat64>& fedAmbTotalTime,
169  const std::vector<DtFloat64>& fedAmbAvgTime, const std::vector<DtFloat64>& fedAmbMinTime,
170  const std::vector<DtFloat64>& fedAmbMaxTime);
171 
172  virtual void updateObjectsTablesAndGraphs(DtFloat64 currTime, const std::vector<DtU32>& objectInstanceHandles,
173  const std::vector<DtU32>& objectClassHandles, const std::vector<DtU32>& objectNumRegistered,
174  const std::vector<DtU32>& objectBytesReceived, const std::vector<DtU32>& objectUpdatesSent,
175  const std::vector<DtU32>& objectBytesSent, std::set<DtU32>& unknownInstanceNamesHandles,
176  std::set<DtU32>& unknownClassNamesHandles);
177 
178  virtual void updateInteractionsTablesAndGraphs(DtFloat64 currTime,
179  const std::vector<DtU32>& interactionClassHandles,
180  const std::vector<DtU32>& interactionUpdatesReceived,
181  const std::vector<DtU32>& interactionBytesReceived,
182  const std::vector<DtU32>& interactionUpdatesSent, const std::vector<DtU32>& interactionBytesSent,
183  std::set<DtU32>&unknownClassNamesHandles);
184 
185  virtual void updateObjectTablesInstanceNames(const std::vector<DtU32>& instanceHandles,
186  const std::vector<MAKRti::DtString>& instanceNames);
187 
188  virtual void updateObjectTablesClassNames(const std::vector<DtU32>& classHandles,
189  const std::vector<MAKRti::DtString>& classNames);
190 
191  virtual void updateInteractionTablesClassNames( const std::vector<DtU32>& classHandles,
192  const std::vector<MAKRti::DtString>& classNames );
194 
195  const std::set<DtU32>& getUnknownObjectInstanceNamesHandlesAndClear() const;
196  void clearUnknownObjInstanceNamesHdls();
197 
199  void saveGuiConfiguration();
200 
203  void switchFederate();
204 
205 
208 
209  void setAssistantInfo(const DtAssistantInfo & info);
210  void setCompId(unsigned int compId);
212 
215 
216  void setFederationNameStr(const MAKRti::DtString & federationName);
217  MAKRti::DtString federationNameStr() const;
218 
219  void setFederateHandle(unsigned int federateHandle);
220  unsigned federateHandle() const;
222 
223  void setConnectionInfo(const DtRtiConnectionInfo& connInfo);
224 
225 signals:
226  void federateStatDlgClosing(const DtAssistantInfo&, int, const MAKRti::DtString&, int, const DtRtiConnectionInfo&);
227 
228 protected:
229 
231  void loadGuiConfiguration();
232 
234  virtual void showEvent( QShowEvent* event );
235 
237  virtual void hideEvent( QHideEvent* event );
238 
239 
240 public slots:
241 
243  void federateIdentifierUpdated( unsigned int );
244 
245 protected:
246 
248  void initBasicInfoWidgets();
249 
251  void initMsgStatsWidget();
252 
254  void initServiceStatsWidget();
255 
257  void initCallbackStatsWidget();
258 
260  void initObjectStatsWidget();
261 
263  void initInteractionStatsWidget();
264 
266  void initButtonBoxWidget();
267 
271  QDockWidget* initDockWidget(bool isFixed, Qt::Orientation ori, const QString& name = "");
272 
274  {
276  DtRow
277  };
278 
281  unsigned addHeaderItem(QStandardItemModel* model, const QString& text,
282  const QString& toolTip, DtColOrRow colOrRow);
283 
285  void updateFederateId(const QString& fedId);
286 
288  void updateFederateDescription();
289 
290 private:
291 
294 
297  void clearAll( );
298  MAKRti::DtString findObjectInstanceName(DtU32 instanceHandle, std::set<DtU32>&unknownInstanceNamesHandles);
299  MAKRti::DtString findObjectClassName(DtU32 classHandle, std::set<DtU32>&unknownClassNamesHandles);
300  MAKRti::DtString findInteractionClassName(DtU32 classHandle, std::set<DtU32>&unknownClassNamesHandles);
301 
305  QDockWidget* myMainDockWidget;
308 
312  QStandardItemModel* myMsgStatsModel;
313  QSortFilterProxyModel* myMsgStatsProxyModel;
314  QDockWidget* myMsgStatsDockWidget;
316  std::map<unsigned, unsigned> myMsgIdToRowMap;
318 
322  QStandardItemModel* myServiceStatsModel;
323  QSortFilterProxyModel* myServiceStatsProxyModel;
326  std::map<unsigned, unsigned> myServiceIdToRowMap;
328 
332  QStandardItemModel* myCallbackStatsModel;
333  QSortFilterProxyModel* myCallbackStatsProxyModel;
336  std::map<unsigned, unsigned> myCallbackIdToRowMap;
338 
342  QStandardItemModel* myObjectStatsModel;
343  QSortFilterProxyModel* myObjectStatsProxyModel;
345  std::map<unsigned, unsigned> myObjectIdToRowMap;
348 
352  QStandardItemModel* myInteractionStatsModel;
353  QSortFilterProxyModel* myInteractionStatsProxyModel;
355  std::map<unsigned, unsigned> myInteractionIdToRowMap;
358 
361 
364 
366 
378 
380  QDialogButtonBox* myButtonBox;
381 
384 
386  unsigned myUpdateCounter;
387 
390 
393 
396 
397  std::map<DtU32, MAKRti::DtString> myObjInstanceNamesByObjInstanceHdlsMap;
398  std::map<DtU32, MAKRti::DtString> myObjClassNamesByObjClassHdlsMap;
399  std::map<DtU32, MAKRti::DtString> myInterClassNamesByInterClassHdlsMap;
400 
402  DtFilename myConfigDir;
403 
406 
409 
411  static const MAKRti::DtFilename theConfigFilename;
412 
414  unsigned int myCompId;
415  MAKRti::DtString myFederationName;
416  unsigned int myFederateHandle;
418 };
419 const char * findObjectClassName(DtU32 classHandle);
420 
421 #endif // federateStatsDialog_H_
422 

Document ID: Generated on Tue May 7 16:26:47 EDT 2013 from SVN revision 126903
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)