MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
federateTree.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2017 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include "rtiMsConfig.h"
13 #include "federationInfo.h"
14 #include <QTreeWidget>
15 #include <vlutil/vlString.h>
16 #include <vlutil/vlTime.h>
17 #include <vector>
18 #include <map>
19 #include <set>
20 
22 
24 { Q_OBJECT;
25 public:
26 
27  DtFederateTree( QWidget* parent );
28 
29  virtual ~DtFederateTree();
30 
31 public:
32 
34  virtual QSize sizeHint() const;
35 
37  virtual void hideEvent( QHideEvent* event );
38 
41  virtual bool updateFederation( const DtAssistantFederationInfo* federation,
42  const DtAssistantForwarderInfo* forwarderInfo,
43  const std::vector<DtAssistantForwarderInfo>& peerInfos);
44 
47  virtual bool removeFederation( const QString& name );
48 
50  virtual void removeAllFederations();
51 
53  virtual void updateFederationColor( const MAKRti::DtString& federationName, const QColor& color );
54 
57  virtual bool updateFederate( const DtAssistantFederateInfo& federate,
58  const DtAssistantForwarderInfo* forwarderInfo,
59  const QString& fedexName,
60  const std::vector<DtAssistantForwarderInfo>& peerInfos);
61 
66  virtual bool removeFederate( int federateHandle, const QString& fedexName,
67  bool clearedDefunct = false );
68 
70  virtual void displayLoadingIndication();
71 
73  virtual void removeLoadingIndication();
74 
76  bool isFederateValid( int federateHandle, const QString& fedexName ) const;
77 
79  void processInvalidList();
80 
83  QMenu* columnViewMenu() { return myColViewMenu; };
84 
87  QMenu* federateMenu() { return myFederateMenu; };
88 
91 
92  QAction* statisticsAction() { return myStatisticsAction; }
93  QAction* latencyTestAction() { return myLatencyTestAction; }
94  QAction* federateRidParamAction() { return myFederateRidParametersAction; }
95  QAction* federateFomAction() { return myFederateFomAction; }
96  QAction* federateLogAction() { return myFederateLogAction; }
97  QAction* changeFederateIconAction() { return myChangeFederateIconAction; }
98  QAction* resignFederateAction() { return myResignFederateAction; }
99 
101 
104  QMenu* federationMenu() { return myFederationMenu; };
105 
108 
109  QAction* federationFomAction() { return myFederationFomAction; }
110  QAction* syncPointsAction() { return myDisplaySyncPointsAction; }
111  QAction* destroyFederationAction() { return myDestroyFederationAction; }
112 
114 
117  void setFederateRemovalTime( float newTime );
118 
120  float getFederateRemovalTime() const;
121 
123  void enableDeletion( bool enable );
124 
126  QString getTreeFederationName( const MAKRti::DtString& federationName );
127 
129  void forceFederateSelection( int federateHandle, const MAKRti::DtString& federation );
130 
132  void forceFederationSelection( const MAKRti::DtString& federation );
133 
135  void forceClearSelection();
136 
138  void saveGuiConfiguration( const MAKRti::DtFilename& configFile );
139 
141  void loadGuiConfiguration( const MAKRti::DtFilename& configFile );
142 
143  void initializeQtToolTips();
144 
145 private:
146 
148  void clearDefunctFederate(QString fedexName, QTreeWidgetItem* federate);
149 
151  bool isFederateDefunct(QTreeWidgetItem* federate);
152 
153 protected:
154 
156  virtual void updateFederateItems( const DtFederateInfoByHandleMap& federates,
157  const DtAssistantForwarderInfo* forwarderInfo,
158  QTreeWidgetItem* fedexItem,
159  const std::vector<DtAssistantForwarderInfo>& peerInfos);
160 
162  virtual void updateFederateItem( const DtAssistantFederateInfo& federate,
163  const DtAssistantForwarderInfo* forwarderInfo,
164  const QString& fedexName, QTreeWidgetItem* fedItem,
165  const std::vector<DtAssistantForwarderInfo>& peerInfos);
166 
168  virtual void updateFederateItemFromForwarderInformation(
169  const DtAssistantFederateInfo& federate,
170  const DtAssistantForwarderInfo* forwarderInfo,
171  const QString& fedexName, QTreeWidgetItem* fedItem,
172  const std::vector<DtAssistantForwarderInfo>& peerInfos);
173 
174 
176  virtual void removeAllFederateItems( QTreeWidgetItem* fedexItem );
177 
181  virtual void removeFederateItem( QTreeWidgetItem* fedItem,
182  QTreeWidgetItem* fedexItem, bool clearedDefunct = false );
183 
185  bool isFederateValid( QTreeWidgetItem* item ) const;
186 
188  bool isFederateLocal( QTreeWidgetItem* item ) const;
189 
192  bool isFederateLightweight( QTreeWidgetItem* item ) const;
193 
196  bool isFederationLightweight( QTreeWidgetItem* item ) const;
197 
198 public:
199 
201  {
202  FederationNameIndex = 0,
203  FederateTypeAndHandleIndex = 0, // Shares column with federation name
220  NumFederateTreeCols
221  };
222 
224  QString theLoadingText;
225 
239 
241 
242 public slots:
243 
245  void showColumns();
246 
248  void setAllColumns( const std::map<QString, std::pair<int,bool> >& columns );
249 
251  void allColumns( std::map<QString, std::pair<int,bool> >& columns );
252 
254  void showColCustomizeDlg();
255 
257  void deleteSelectedFed();
258 
261  void destroySelectedFederations();
262 
264  void updateEnableNetworkTestingForSelectedFederations();
265 
267  void showLatencyTest();
268 
270  void clearAllDefunctFederates();
271 
273  bool hasValidFederates() const;
274 
276  void clearCurrDefunctFederates();
277 
279  void refreshMenus();
280 
282  void signalSelectionChange();
283 
285  void showContextMenu( const QPoint& );
286 
288  void copySelectionToClipboard();
289 
290 signals:
291 
292  void fedDeleteRequest( int, const QString& );
293  void federationDeleteRequest( const QString& fedexName );
294  void enableNetworkTestingRequest( const QString& );
295  void disableNetworkTestingRequest( const QString& );
296  void showFedLatencyTest( const QString&, int );
297 
299  void federateSelected( const MAKRti::DtString& federation, int federateHandle );
300 
302  void federationSelected( const MAKRti::DtString& name );
303 
305  void nothingSelected();
306 
308  void multipleItemsSelected();
309 
311  void defunctFederateRemoved( const MAKRti::DtString& federation, int federateHandle );
312 
313 private:
314 
316  DtFederateTree( const DtFederateTree& );
317 
319  DtFederateTree& operator = ( const DtFederateTree& );
320 
321 protected:
322 
323  static const int FederateNameRole;
324  static const int FederateHandleRole;
325  static const int TestEnableRole;
326  static const int IsLocalRole;
327  static const int IsLightweightRole;
328 
331  {
332  public:
333 
335  : shortName()
336  , longName()
337  , description()
338  , defaultSize(50)
339  {
340  }
341 
342  DtFederateTreeColDescr(const QString& s, const QString& l,
343  const QString& d, unsigned sz )
344  : shortName(s)
345  , longName(l)
346  , description(d)
347  , defaultSize(sz)
348  {
349  }
350 
352  {
353  }
354 
355  QString shortName;
356  QString longName;
357  QString description;
358  unsigned defaultSize;
359 
360  };
361 
363  std::vector<DtFederateTreeColDescr> myColumnDescrs;
364 
367 
369  std::vector<QAction*> myColDispActions;
371 
376 
388 
397 
400  QIcon myCheckIcon;
407  QIcon myTestIcon;
410 
412  std::map<QString,QString> myFederationNamesToItemNames;
413 
415  std::map<QString,QString> myItemNamesToFederationNames;
416 
422  std::map<QTreeWidgetItem*, std::pair<MAKRti::DtTime, std::pair<QString,int> > > myDefunctFederateTreeWidgets;
423 
425  std::map<QTreeWidgetItem*, std::pair<QString,int> > myReconnectingFederates;
426 
428  std::map<QTreeWidgetItem*, std::pair<QString,int> > myReconnectedFederates;
429 
431  std::set< std::pair<QString,int> > myClearedDefunctFederates;
432 
434  std::set<QTreeWidgetItem*> myTestDisabledFederations;
435 
437  std::map<MAKRti::DtString,QColor> myFederationColors;
438 
441 
444 
447 
448  MAKRti::DtClock myTimer;
449 
452 
455  static const int theLastColDefaultedOn;
456 
460 
461 };
QString theNoTestToolTip
Tool tip strings.
Definition: federateTree.h:234
QAction * myFederateRidParametersAction
Federate menu actions.
Definition: federateTree.h:381
This file contains the declaration of DtAssistantFederationInfo.
Definition: federateTree.h:207
QAction * myDisplaySyncPointsAction
Federation menu actions.
Definition: federateTree.h:392
QMenu * myColViewMenu
Column view menu.
Definition: federateTree.h:366
QString theTestCapableEnabledToolTip
Tool tip strings.
Definition: federateTree.h:232
QAction * myChangeFederateIconAction
Federate menu actions.
Definition: federateTree.h:384
std::map< QTreeWidgetItem *, std::pair< QString, int > > myReconnectingFederates
Federates that are currently attempting to reconnect.
Definition: federateTree.h:425
static const int FederateNameRole
Definition: federateTree.h:323
std::map< QString, QString > myItemNamesToFederationNames
Map of federation names to the names used in the tree.
Definition: federateTree.h:415
static const int IsLightweightRole
Definition: federateTree.h:327
QMenu * myContextMenu
Context Menu.
Definition: federateTree.h:373
Definition: federateTree.h:23
QIcon myNoCheckIcon
Icons to be used in the federate tree.
Definition: federateTree.h:401
bool myShouldAddShutdownAllToMenu
Determines based on RTI_ASSISTANT_REMOVE_SHUT_DOWN_ALL environment variable whether shut down all...
Definition: federateTree.h:459
QMenu * myFederateMenu
Definition: federateTree.h:374
QAction * federateRidParamAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:94
QIcon myWorldWideWeb
Icons to be used in the federate tree.
Definition: federateTree.h:406
QAction * myEnableNetworkTestingAction
Federation menu actions.
Definition: federateTree.h:393
MAKRti::DtClock myTimer
Definition: federateTree.h:448
Definition: federateTree.h:204
Definition: federateTree.h:208
QString theFederateLogEnabledText
Tool tip strings.
Definition: federateTree.h:237
std::vector< DtFederateTreeColDescr > myColumnDescrs
List of descriptions for each column.
Definition: federateTree.h:363
Definition: federateTree.h:206
QAction * myResignFederateAction
Federate menu actions.
Definition: federateTree.h:385
static const int IsLocalRole
Definition: federateTree.h:326
Definition: federateTree.h:209
Definition: federateTree.h:212
unsigned defaultSize
Definition: federateTree.h:358
QIcon myDroppedIcon
Icons to be used in the federate tree.
Definition: federateTree.h:408
QMenu * columnViewMenu()
Returns a pointer to the menu which allows users to hide/display any columns in the tree...
Definition: federateTree.h:83
QAction * destroyFederationAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:111
Stores information on a known federate.
Definition: federateInfo.h:21
DtFederateTreeColDescr(const QString &s, const QString &l, const QString &d, unsigned sz)
Definition: federateTree.h:342
Structure for column description strings.
Definition: federateTree.h:330
QString theConstrainedEnabledToolTip
Tool tip strings.
Definition: federateTree.h:230
DtFederateTreeCol
Definition: federateTree.h:200
QMenu * federationMenu()
Returns a pointer to the menu which allows users to perform actions related to the current selected f...
Definition: federateTree.h:104
QAction * federateFomAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:95
std::map< int, DtAssistantFederateInfo > DtFederateInfoByHandleMap
Map of federate handles to federate info.
Definition: federationInfo.h:28
QAction * myFederateFomAction
Federate menu actions.
Definition: federateTree.h:382
QAction * federationFomAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:109
QTreeWidgetItem * myLoadingIndicationItem
Item that indicates federation information is currently being loaded.
Definition: federateTree.h:443
QAction * myFederationFomAction
Federation menu actions.
Definition: federateTree.h:391
QString theSingleTestToolTip
Tool tip strings.
Definition: federateTree.h:236
QString theContinuousTestToolTip
Tool tip strings.
Definition: federateTree.h:235
DtFederateTreeColDescr()
Definition: federateTree.h:334
QAction * latencyTestAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:93
QString theFederateLogDisabledText
Tool tip strings.
Definition: federateTree.h:238
std::map< QString, QString > myFederationNamesToItemNames
Map of federation names to the names used in the tree.
Definition: federateTree.h:412
QAction * resignFederateAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:98
QAction * myClearAllDeadFederates
Federation menu actions.
Definition: federateTree.h:395
std::map< QTreeWidgetItem *, std::pair< QString, int > > myReconnectedFederates
Federates that have successfully reconnected.
Definition: federateTree.h:428
std::set< std::pair< QString, int > > myClearedDefunctFederates
Defunct federates that have been cleared from the display.
Definition: federateTree.h:431
QIcon myCheckIcon
Icons to be used in the federate tree.
Definition: federateTree.h:400
QAction * syncPointsAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:110
QAction * myClearCurrDefunctFederate
Federate menu actions.
Definition: federateTree.h:386
QAction * statisticsAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:92
bool myDeletionEnabled
Indicates whether or not federate and federation deletion is enabled.
Definition: federateTree.h:446
QMenu * myFederationMenu
Definition: federateTree.h:375
QMenu * federateMenu()
Returns a pointer to the menu which allows users to perform actions related to the currently selected...
Definition: federateTree.h:87
QAction * myDestroyFederationAction
Federation menu actions.
Definition: federateTree.h:394
Definition: federateTree.h:213
QAction * myStatisticsAction
Federate menu actions.
Definition: federateTree.h:379
~DtFederateTreeColDescr()
Definition: federateTree.h:351
Definition: federateTree.h:211
QSize myLastVisibleSize
The size of the dialog the last time it was visible.
Definition: federateTree.h:451
QString shortName
Definition: federateTree.h:355
QAction * myColCustomizeAction
Definition: federateTree.h:370
QString theRegulatingDisabledToolTip
Tool tip strings.
Definition: federateTree.h:229
std::set< QTreeWidgetItem * > myTestDisabledFederations
Federations that have testing disabled.
Definition: federateTree.h:434
Definition: federateTree.h:217
Definition: federateTree.h:214
Structure containing State information from a single federation.
Definition: federationInfo.h:42
#define DT_DLL_ASSISTANTAPP
Definition: rtiMsConfig.h:151
std::map< QTreeWidgetItem *, std::pair< MAKRti::DtTime, std::pair< QString, int > > > myDefunctFederateTreeWidgets
Items are added to myDefunctFederateTreeWidgets when their socket breaks.
Definition: federateTree.h:422
QString theLoadingText
The message that indicates information is being loaded.
Definition: federateTree.h:224
Definition: federateTree.h:219
QIcon myRedAttention
Icons to be used in the federate tree.
Definition: federateTree.h:405
QString description
Definition: federateTree.h:357
std::vector< QAction * > myColDispActions
Column view actions.
Definition: federateTree.h:369
Definition: federateTree.h:205
QIcon myYellowAttention
Icons to be used in the federate tree.
Definition: federateTree.h:404
QIcon myContTestIcon
Icons to be used in the federate tree.
Definition: federateTree.h:402
QString theTestCapableDisabledToolTip
Tool tip strings.
Definition: federateTree.h:233
QString theRegulatingEnabledToolTip
Tool tip strings.
Definition: federateTree.h:228
Definition: federateTree.h:215
QString longName
Definition: federateTree.h:356
QAction * federateLogAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:96
Definition: federateTree.h:210
float myFederateRemovalTime
Time after which defunct federates will automatically be removed from the tree.
Definition: federateTree.h:440
static const int theLastColDefaultedOn
The number of the last column which is displayed by default the first time the dialog is shown...
Definition: federateTree.h:455
QAction * changeFederateIconAction()
Returns a pointer to the specific action from the federate menu.
Definition: federateTree.h:97
QIcon myTestIcon
Icons to be used in the federate tree.
Definition: federateTree.h:407
QAction * myFederateLogAction
Federate menu actions.
Definition: federateTree.h:383
QIcon mySingleTestIcon
Icons to be used in the federate tree.
Definition: federateTree.h:403
QString theConstrainedDisabledToolTip
Tool tip strings.
Definition: federateTree.h:231
Stores the current state of a single forwarder.
Definition: forwarderInfo.h:123
Definition: federateTree.h:218
std::map< MAKRti::DtString, QColor > myFederationColors
Map of federation names to their colors.
Definition: federateTree.h:437
Definition: federateTree.h:216
QAction * myLatencyTestAction
Federate menu actions.
Definition: federateTree.h:380
static const int FederateHandleRole
Definition: federateTree.h:324
static const int TestEnableRole
Definition: federateTree.h:325

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)