MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
fomStatsDialog.h
Go to the documentation of this file.
1 #ifndef fomStatsDialog_h__
2 #define fomStatsDialog_h__
3 /*********************************************************************
4 ** Copyright (c) 2012 MaK Technologies, Inc.
5 ** All rights reserved.
6 *********************************************************************/
7 
8 #include "rtiMsConfig.h"
9 #include <vlutil/vlMachineTypes.h>
10 #include <vlutil/vlFilename.h>
11 #include "assistantEnums.h"
12 #include <QtGui/QMainWindow>
13 #include <map>
15 #include "vlutil/vlFedTarget.h"
16 #include <QtGui/QStandardItemModel>
17 #include "assistantInfo.h"
19 
22 
23 class QGridLayout;
24 class QVBoxLayout;
25 class QHBoxLayout;
26 class QLabel;
27 class QPixmap;
28 class QStandardItemModel;
29 class QSortFilterProxyModel;
30 class QDialogButtonBox;
32 class QStandardItem;
34 
38 {
39  Q_OBJECT
40 
41 public:
43  {
47  DtObjectModelNumberOfColumns
48  };
49 
51  {
55  DtInteractionModelNumberOfColumns
56  };
57 
59  {
66  DtAttributeModelNumberOfColumns
67  };
68 
70  {
73 // DtParameterPublishColumn,
74 // DtParameterSubscribeColumn,
77  DtParameterNumberOfColumns
78  };
79 
81  DtFomStatisticsDialog(const MAKRti::DtFilename& configDir,
82  QWidget* parent = 0, Qt::WindowFlags f = 0);
83 
85  virtual ~DtFomStatisticsDialog();
86 
88  virtual QSize sizeHint() const;
89 
91  void setFederateIcon(const QPixmap& icon);
92 
94  void setFederateType(const QString& t);
95 
97  void setFederateName(const QString& n);
98 
100  void setFederateProcess(const QString& p);
101 
103  void setFederateHost(const QString& h);
104 
106  void setFederationName(const QString& n);
107 
108  virtual void closeEvent(QCloseEvent * event);
110  void saveGuiConfiguration();
111 
112  void updateObjectFomTreeData( const std::vector<MAKRti::DtU32>& classHandles,
113  const std::vector<MAKRti::DtU32>& parentClassHandles, const std::vector<MAKRti::DtString>& classNames);
114  void updateInteractionFomTreeData( const std::vector<MAKRti::DtU32>& classHandles,
115  const std::vector<MAKRti::DtU32>& parentClassHandles, const std::vector<MAKRti::DtString>& classNames);
116 
117 
118  virtual void updateAttributesTable(const MAKRti::DtString& name, MAKRti::DtU32 handle);
119 
120  virtual void updateParametersTable(const MAKRti::DtString& name, MAKRti::DtU32 handle);
121 
122  void clearAttributesNames();
123 
124  void updateAttributeNames(const std::vector<MAKRti::DtU32>& objectClassHandles,
125  const std::vector<MAKRti::DtU32>& attributeHandles,
126  const std::vector<MAKRti::DtString>& attributeNames,
127  const std::vector<MAKRti::DtU32>& parentClassHandles,
128  const std::vector<MAKRti::DtU32>& totalClassHandles);
129 
130  void clearParameterNames();
131 
132  void updateParameterNames(const std::vector<MAKRti::DtU32>& interClassHandles,
133  const std::vector<MAKRti::DtU32>& paramHandles,
134  const std::vector<MAKRti::DtString>& paramNames,
135  const std::vector<MAKRti::DtU32>& parentInterHandles,
136  const std::vector<MAKRti::DtU32>& totalInterHandles);
137  void updateAttrFomState(const std::vector<MAKRti::DtU32>& objectClassHandles,
138  const std::vector<MAKRti::DtU32>& attributeHandles,
139  const std::vector<bool>& attributePub,
140  const std::vector<bool>& attributeSub,
141  const std::vector<DtTransportType>& attributeTransport,
142  const std::vector<DtOrderType>& attributeOrder,
143  const std::vector<MAKRti::DtU32>& objectPubSubHandles,
144  const std::vector<bool>& objPub,
145  const std::vector<bool>& ObjSub);
146  void updateParamFomState( const std::vector<MAKRti::DtU32>& objectClassHandles,
147  const std::vector<MAKRti::DtU32>& attributeHandles,
148  const std::vector<bool>& attributePub, const std::vector<bool>& attributeSub,
149  const std::vector<DtTransportType>& attributeTransport,
150  const std::vector<DtOrderType>& attributeOrder,
151  const std::vector<MAKRti::DtU32>& objectPubSubHandles,
152  const std::vector<bool>& objPub, const std::vector<bool>& ObjSub);
153 
154  void clearAll( );
155  void switchFederate();
156 
157  void refresh();
158 
159  void setFederationNameStr(const MAKRti::DtString& federationName);
160  MAKRti::DtString federationNameStr();
161  void setFederateHandle(int federateHandle);
162  int federateHandle();
163 
164  void setAssistantInfo(const DtAssistantInfo & info);
165  void setCompId(unsigned int compId);
166 
167  void setConnInfo(const DtRtiConnectionInfo& connInfo);
168 
169 
170 signals:
171  void fomStatDlgClosing(const DtAssistantInfo&, int, const MAKRti::DtString&, int, const DtRtiConnectionInfo&);
172 
173 protected:
174 
176  void loadGuiConfiguration();
177 
179  virtual void showEvent( QShowEvent* event );
180 
182  virtual void hideEvent( QHideEvent* event );
183 
184 public slots:
185 
187  void federateIdentifierUpdated( unsigned int );
188 
189  void processObjectSelection(const QModelIndex& index, bool forceUpdate = false);
190 
191  void processInteractionSelection(const QModelIndex& index, bool forceUpdate = false);
192 
193 protected:
194 
196  void initBasicInfoWidgets();
197 
199  void initObjectStatsWidget();
200 
202  void initInteractionStatsWidget();
203 
205  void initButtonBoxWidget();
206 
210  QDockWidget* initDockWidget(bool isFixed, Qt::Orientation ori, const QString& name = "");
211 
213  {
215  DtRow
216  };
217 
220  unsigned addHeaderItem(QStandardItemModel* model, const QString& text,
221  DtColOrRow colOrRow);
222 
224  void updateFederateId(const QString& fedId);
225 
226 private:
227 
230 
232  DtFomStatisticsDialog &operator=(const DtFomStatisticsDialog&);
233  MAKRti::DtString getFullObjectName(QStandardItem * objectItem, bool addHandle = false);
234  MAKRti::DtString getFullObjectName(MAKRti::DtU32 objectHandle, bool addHandle = false);
235  MAKRti::DtString getFullInteractionName(QStandardItem * interactionItem, bool addHandle = false);
236  MAKRti::DtString getFullInteractionName(MAKRti::DtU32 interactionHandle, bool addHandle = false);
237  const char * getObjHeader( const enum DtFomStatisticsDialogObjectModelColumnEnum col );
238  const char * getInterHeader( const enum DtFomStatisticsDialogInteractionModelColumnEnum col );
239  const char * getAttrHeader( const enum DtFomStatisticsDialogAttributeModelColumnEnum col );
240  const char * getParamHeader( const enum DtFomStatisticsDialogParameterModelColumnEnum col );
241  void updateObjectPubSub(const std::vector<MAKRti::DtU32>& objectPubSubHandles,
242  const std::vector<bool>& objPub,
243  const std::vector<bool>& ObjSub);
244  void updateInteractionPubSub( const std::vector<MAKRti::DtU32>& objectPubSubHandles,
245  const std::vector<bool>& objPub, const std::vector<bool>& objSub);
246 
250  QDockWidget* myMainDockWidget;
253 
257  QStandardItemModel* myObjectStatsModel;
258  QSortFilterProxyModel* myObjectStatsProxyModel;
260  std::map<unsigned, unsigned> myObjectIdToRowMap;
262  QStandardItemModel* myAttributeStatsModel;
263  QSortFilterProxyModel* myAttributeStatsProxyModel;
265 
269  QStandardItemModel* myInteractionStatsModel;
270  QSortFilterProxyModel* myInteractionStatsProxyModel;
272  std::map<unsigned, unsigned> myInteractionIdToRowMap;
274  QStandardItemModel* myParameterStatsModel;
275  QSortFilterProxyModel* myParameterStatsProxyModel;
277 
280 
283 
285 
297 
299  QDialogButtonBox* myButtonBox;
300 
303 
304  std::map<DtU32, MAKRti::DtString> myObjClassNamesByObjClassHdlsMap;
305  std::map<DtU32, MAKRti::DtString> myInterClassNamesByInterClassHdlsMap;
306 
307  std::map<MAKRti::DtU32, QStandardItem*> myObjectItemsByObjectHandleMap;
308  std::map<QStandardItem*, MAKRti::DtU32> myObjectHandlesByObjectItemsMap;
309  std::map<MAKRti::DtU32, QStandardItem*> myInteractionItemsByInteractionHandleMap;
310  std::map<QStandardItem*, MAKRti::DtU32> myInteractionHandlesByInteractionItemsMap;
311 
312  std::map<MAKRti::DtU32, QModelIndex> myObjPubItemsByObjHandlesMap;
313  std::map<MAKRti::DtU32, QModelIndex> myObjSubItemsByObjHandlesMap;
314 
315  MAKRti::DtU32 myLatencyTestHandle;
316 
317  MAKRti::DtU32 myObjectRootHandle;
318  MAKRti::DtU32 myInteractionRootHandle;
319 
320  std::map<MAKRti::DtU32, MAKRti::DtU32> myObjectParentHandleByObjectHandleMap;
321  std::map<MAKRti::DtU32, MAKRti::DtU32> myInteractionParentHandleByInteractionHandleMap;
322 
323 
324  std::map< MAKRti::DtU32, std::vector<MAKRti::DtU32> > myAttributeHandlesByAttrObjectClassHandleMap;
325  std::map< MAKRti::DtU32, std::vector<MAKRti::DtString> > myAttributeNamesByAttrObjectClassHandleMap;
326  std::map< MAKRti::DtU32, std::vector<MAKRti::DtU32> > myParameterHandlesByParamInteractionHandleMap;
327  std::map< MAKRti::DtU32, std::vector<MAKRti::DtString> > myParameterNamesByParamInteractionHandleMap;
328 
329  typedef std::pair <MAKRti::DtU32, MAKRti::DtU32> DtHandlePair;
330  std::map<DtHandlePair, bool> myAttrPubByObjAttrHandlePair;
331  std::map<DtHandlePair, bool> myAttrSubByObjAttrHandlePair;
332  std::map<DtHandlePair, DtTransportType> myAttrTransportByObjAttrHandlePair;
333  std::map<DtHandlePair, DtOrderType> myAttrOrderByObjAttrHandlePair;
334  std::map<MAKRti::DtU32, bool> myObjPubByObjHandleMap;
335  std::map<MAKRti::DtU32, bool> myObjSubByObjHandleMap;
336 
337 
338  std::map<DtHandlePair, bool> myParamPubByIntParamHandlePair;
339  std::map<DtHandlePair, bool> myParamSubByIntParamHandlePair;
340  std::map<DtHandlePair, DtTransportType> myParamTransportByIntParamHandlePair;
341  std::map<DtHandlePair, DtOrderType> myParamOrderByIntParamHandlePair;
342  std::map<MAKRti::DtU32, bool> myIntPubByIntHandleMap;
343  std::map<MAKRti::DtU32, bool> myIntSubByIntHandleMap;
344 
345  std::map<MAKRti::DtU32, QModelIndex> myIntPubItemsByIntHandlesMap;
346  std::map<MAKRti::DtU32, QModelIndex> myIntSubItemsByIntHandlesMap;
347 
349  DtFilename myConfigDir;
350 
353 
356 
358  static const MAKRti::DtFilename theConfigFilename;
359 
361  QIcon myBlankIcon;
363 
369  QStandardItem* myObjHlaManagerItem;
370  QStandardItem* myIntHlaManagerItem;
372 
373  MAKRti::DtString myFederationNameStr;
376  int myCompid;
378 };
379 #endif // fomStatsDialog_h__

Document ID: Generated on Mon Mar 21 09:41:37 EDT 2016 from SVN revision 163228
Copyright © 2005-2015 VT MÄK Inc. All Rights Reserved (www.mak.com)