![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2008 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: federationsViewDialog.h,v $ $Revision: 1.14 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00009 00012 00013 #ifndef federationsViewDialog_H_ 00014 #define federationsViewDialog_H_ 00015 00016 #include "rtiMsConfig.h" 00017 #include "ui_federationsViewDialogUI.h" 00018 #include "assistantConnectionInfo.h" 00019 #include "federationInfo.h" 00020 #include <map> 00021 #include <vector> 00022 #include <list> 00023 00024 #include <vlutil/vlUtil.h> 00025 #include <vlutil/vlTime.h> 00026 00027 #include <qdir.h> 00028 #include <qcombobox.h> 00029 00030 #include <RIDparams.h> 00031 00032 #include "rtiFederationWidget.h" 00033 00034 class DtFederateTree; 00035 class DtExecConfig; 00036 class DtWidgetDialog; 00037 class DtRidWidget; 00038 class QSignalMapper; 00039 class QProcess; 00040 00041 00042 class DT_DLL_ASSISTANTAPP DtFederationsViewDialog : public QMainWindow 00043 { 00044 Q_OBJECT 00045 00046 public: 00047 00049 DtFederationsViewDialog( const MAKRti::DtFilename& configDir, 00050 QWidget* parent = 0, Qt::WindowFlags flags = 0 ); 00051 00053 virtual ~DtFederationsViewDialog(); 00054 00056 virtual void tick(); 00057 00062 virtual int addConnection( const MAKRti::DtString& name, 00063 const DtRtiConnectionInfo& conn, bool isLocal ); 00064 00066 virtual void removeConnection( const MAKRti::DtString& name ); 00067 00069 virtual void setConnectionIsLocal( const MAKRti::DtString& name, bool isLocal ); 00070 00073 virtual void updateFederations( const DtFederationStateByNameMap& federations ); 00074 00077 virtual void updateFederation( const DtAssistantFederationInfo& federation ); 00078 00080 virtual void removeFederation( const MAKRti::DtString& federationName ); 00081 00083 virtual void removeAllFederations(); 00084 00087 virtual void updateFederate( const DtAssistantFederateInfo& federate, 00088 const MAKRti::DtString& federationName ); 00089 00092 virtual void removeFederate( int federateHandle, const MAKRti::DtString& federationName ); 00093 00096 virtual void updateSyncPoint( const MAKRti::DtString& syncPtName, 00097 const DtPendingAchievedPair& pendAchvFeds, 00098 const DtFederateInfoByHandleMap& federates, 00099 const MAKRti::DtString& federationName ); 00100 00103 virtual void removeSyncPoint( const MAKRti::DtString& syncPtName, 00104 const MAKRti::DtString& federationName ); 00105 00108 virtual void updateFederateTestStatus( const DtAssistantFederateInfo& federate, 00109 const MAKRti::DtString& federationName, bool isRunningTest, int numInitiated, 00110 int numReports ); 00111 00115 virtual bool selectedConnection( DtRtiConnectionInfo& conn ) const; 00116 00118 virtual int selectedConnection() const; 00119 00121 virtual void updateRidParams( const MAKRti::DtString& params, 00122 const MAKRti::DtString& hostName, const MAKRti::DtString& filename ); 00123 00126 virtual void enableCommands( bool enable ); 00127 00129 virtual void displayLoadingIndication(); 00130 00132 virtual void removeLoadingIndication(); 00133 00135 virtual void saveGuiState(); 00136 00138 virtual QMenu* createPopupMenu(); 00139 00141 virtual void clearFederationActions(); 00142 00143 public slots: 00144 00147 virtual void processConnectionSelection( int index, bool ignoreVisibility = false ); 00148 00150 virtual void showHelpDialog(); 00151 00153 virtual void processHelpDialogClose(); 00154 00156 virtual void showRidDialog(); 00157 00159 virtual void clearRidParams(); 00160 00162 virtual void enableOrDisableRidViewing( const DtRtiConnectionInfo& conn ); 00163 00165 virtual void updateFederateRemovalTime( float period ); 00166 00168 virtual void enableWebSpy( bool enable ); 00169 00171 float getFederateRemovalTime() const; 00172 00174 virtual void updateFedViewWidgetEnable( const QString& ); 00175 virtual void updateFedViewWidgetDisable( const QString& ); 00176 00177 00178 signals: 00179 00181 void viewedConnectionChanged( const DtRtiConnectionInfo& conn ); 00182 00184 void forceFederateResign( int, const QString& ); 00185 00187 void forceFederationDestroy( const QString& ); 00188 00190 void showRtiexecWebSpy(); 00191 00193 void showFederateWebSpy( const QString& fedexName, int fedHandle ); 00194 00196 void requestRidParams(); 00197 00199 void showLatencyTestDialog( const QString& fedexName, int fedHandle ); 00200 00202 void aboutDialogRequested(); 00203 00205 void enableNetworkTesting( const QString& fedexName ); 00206 00208 void disableNetworkTesting( const QString& fedexName ); 00209 00212 void saveToLog(); 00213 00214 protected: 00215 00217 00218 00219 void setupConnectionComboBox(); 00220 00223 void setupFederateTree(); 00224 00226 void setupMenus(); 00227 00229 void connectSignals(); 00231 00233 virtual void addFederationWidget( const DtAssistantFederationInfo& federationState ); 00234 00236 virtual void removeFederationWidget( const QString& federationName, const QString& federationMenuName ); 00237 00239 virtual void addFederationMenuAction( QAction* action ); 00240 00242 virtual void removeFederationMenuAction( const QString& name ); 00243 00245 virtual void showEvent( QShowEvent* event ); 00246 00248 virtual void closeEvent( QCloseEvent* event ); 00249 00251 virtual void keyPressEvent( QKeyEvent* event ); 00252 00253 virtual void convertToFederateTreeStrings( 00254 std::map<QString, std::pair<int, bool> >& columns) const; 00255 00256 virtual void convertToConfigStrings( 00257 std::map<QString, std::pair<int, bool> >& columns) const; 00258 00260 virtual void fedExNameAndFedHandleToString( const QString& fedExName, 00261 int fedHandle, QString& str ); 00262 00265 virtual void stringToFedExNameAndFedHandle( const QString& str, 00266 QString& fedExName, int& fedHandle ); 00267 00268 protected: 00269 Ui::FederationsViewDialog myUiImpl; 00270 00272 DtWidgetDialog* myRidDialog; 00273 00275 DtRidWidget* myRidWidget; 00276 00278 QProcess* myHelpAssistant; 00279 00281 DtFederateTree* myFederateTree; 00282 00284 QComboBox* myConnectionComboBox; 00285 00287 DtRIDParameters* myRidParams; 00288 00290 std::map< QString, QDockWidget* > myFederationWidgets; 00291 00293 DtBoost::shared_ptr<DtExecConfig> myExecConfig; 00294 00296 QIcon myCompliantIcon; 00297 QIcon myNonCompliantIcon; 00298 00300 00301 QSignalMapper* myLatencyTestObservingMapper; 00302 QSignalMapper* myLatencyTestRunMapper; 00303 QSignalMapper* myLatencyTestRunContinuousMapper; 00304 QSignalMapper* myLatencyTestStopMapper; 00305 QSignalMapper* myLatencyTestDismissMapper; 00307 00309 std::map< QString, DtRtiConnectionInfo > myConnsByName; 00310 00312 00313 00314 00315 QAction* mySaveAction; 00316 00318 QAction* myCloseAction; 00319 00322 QAction* myOpenWebSpyAction; 00323 00325 QMenu* myFedColumnMenu; 00326 00328 QMenu* myViewFederationMenu; 00329 00331 std::map< QString, QAction* > myFederationActions; 00332 00334 QAction* myViewRidAction; 00335 00337 QMenu* myFederateMenu; 00338 00340 QMenu* myFederationMenu; 00341 00343 QAction* myHelpAction; 00344 QAction* myAboutAction; 00346 00348 QString myLastViewedConnection; 00349 00351 static QString theNoConnectionsText; 00352 }; 00353 00354 #endif //! federationsViewDialog_H_ 00355 00356