X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FLoader%2FInquireServersQThread.cxx;h=7e8cf6e4235d6e82645b1dffd547a59b53f7e122;hb=e2926da4bf6c85b85058a717ecd523a03ccea90d;hp=1102aa39a957287a199858ebd4579fee37e531ca;hpb=877b040f09d199bce3ba34b0b834aa5d4cf6ec89;p=modules%2Fkernel.git diff --git a/src/Loader/InquireServersQThread.cxx b/src/Loader/InquireServersQThread.cxx index 1102aa39a..7e8cf6e42 100644 --- a/src/Loader/InquireServersQThread.cxx +++ b/src/Loader/InquireServersQThread.cxx @@ -1,14 +1,13 @@ -//============================================================================= -// File : InquireServersQThread.cxx -// Created : Mon Oct 21 17:26:42 2002 -// Author : Vasily RUSYAEV -// Project : SALOME -// Copyright : EDF 2001 -// $Header$ -//============================================================================= +// Copyright (C) 2003 CEA/DEN, EDF R&D +// +// +// +// File : InquireServersQThread.cxx +// Author : Vasily RUSYAEV +// Module : SALOME +// $Header$ using namespace std; - #include "InquireServersQThread.h" #include @@ -53,6 +52,7 @@ static QString addSlash( const QString& path ); InquireServersGUI::InquireServersGUI() : QVBox(0, "SFA splash", Qt::WDestructiveClose | Qt::WStyle_Customize | Qt::WStyle_NoBorder ) { + myGUI = false; myThread = new InquireServersQThread(this); // 1. Polish the appearance @@ -140,6 +140,7 @@ void InquireServersGUI::ClickOnCancel() { //it's necessary to stop asking servers myThread->stop(); + myGUI = false; //Also we should send QCloseEvent in order to close this widget (and remove from screen) //QThread::postEvent ( this, new QCloseEvent() ); qApp->exit(1); @@ -200,7 +201,7 @@ InquireServersQThread::InquireServersQThread( InquireServersGUI* r ) char* cenv; IsChecking = true; - myServersCount = 8; + myServersCount = 5; //how many times we should repeat attempts to get response from all needed for launching SALOME servers myRepeat = 30; // default value, user can change it by setting CSF_RepeatServerRequest env.variable cenv = getenv( "CSF_RepeatServerRequest" ); @@ -214,23 +215,32 @@ InquireServersQThread::InquireServersQThread( InquireServersGUI* r ) QString str = "Loading: "; myMessages[0] = "Checking naming service..."; myMessages[1] = str + "SALOME_Registry_Server" + "..."; - myMessages[2] = str + "SALOMEDS_Server" + "..."; + myMessages[2] = str + "SALOME_Container SuperVisionContainer" + "..."; myMessages[3] = str + "SALOME_ModuleCatalog_Server" + "..."; - myMessages[4] = str + "SALOME_Session_Server" + "..."; - myMessages[5] = ""; - myMessages[6] = ""; - myMessages[7] = ""; + myMessages[4] = str + "SALOME_ContainerPy.py FactoryServerPy" + "..."; + myMessages[5] = str + "SALOME_Container FactoryServer" + "..."; + myMessages[6] = str + "SALOMEDS_Server" + "..."; + myMessages[7] = str + "SALOME_Session_Server" + "..."; r->getArgs( _argc, &_argv); // NRI : Temporary solution for SuperVisionContainer - for ( int i=1; i<=_argc; i++) { - if (strcmp(_argv[i],"CPP")==0) + for ( int i=1; i<=(_argc-1); i++) { + if (strcmp(_argv[i],"CPP")==0) { myMessages[5] = str + "SALOME_Container FactoryServer" + "..."; - if (strcmp(_argv[i],"PYTHON")==0) + myServersCount++; + } + if (strcmp(_argv[i],"PYTHON")==0) { myMessages[6] = str + "SALOME_ContainerPy.py FactoryServerPy" + "..."; - if (strcmp(_argv[i],"SUPERV")==0) + myServersCount++; + } + if (strcmp(_argv[i],"SUPERV")==0) { myMessages[7] = str + "SALOME_Container SuperVisionContainer" + "..."; + myServersCount++; + } + if (strcmp(_argv[i],"GUI")==0) { + r->withGUI(true); + } } } @@ -238,9 +248,18 @@ void InquireServersQThread::run() { while (IsChecking) { - for (int i=1; i<=myServersCount; i++) + for (int i=1; i<=8; i++) { - if ( myMessages[i-1].isEmpty() ) continue; + if ( myMessages[i-1].isEmpty() ) { + if (i==8) { + IsChecking = false; + //myExitStatus should be 0 because all servers exist and work + myExitStatus = 0; + //we should send QCloseEvent in order to close this widget (and remove from screen) + QThread::postEvent ( receiver , new QCloseEvent() ); + } else + continue; + } QString *message = new QString(myMessages[i-1]); QThread::postEvent( receiver, new InquireEvent( ( QEvent::Type )InquireEvent::ProgressEventLabel, message ) ); QThread::usleep(200000); @@ -249,7 +268,7 @@ while (IsChecking) if (result) { QThread::postEvent( receiver, new InquireEvent( ( QEvent::Type )InquireEvent::ProgressEvent, new int( i ) ) ); - if (i==myServersCount) + if (i==8) { IsChecking = false; //myExitStatus should be 0 because all servers exist and work @@ -308,17 +327,19 @@ bool InquireServersQThread::AskServer(int iteration, QString ** errMessage) case 2: //checking - existence of SALOME_Registry_Server case 3: - //checking - existence of SALOMEDS_Server + //checking - existence of SALOME_Container SuperVisionContainer case 4: //checking - existence of SALOME_ModuleCatalog_Server case 5: - //checking - existence of SALOME_Session_Server + //checking - existence of SALOME_ContainerPy.py FactoryServerPy case 6: //checking - existence of SALOME_Container FactoryServer case 7: - //checking - existence of SALOME_ContainerPy.py FactoryServerPy + //checking - existence of SALOMEDS_Server case 8: - //checking - existence of SALOME_Container SuperVisionContainer + //checking - existence of SALOME_Session_Server + + IsPassed = pingServer(iteration, errDescription); if (!IsPassed) *errMessage = new QString(errDescription); @@ -356,16 +377,20 @@ bool InquireServersQThread::pingServer(int iteration, QString& errMessage) } } break; - case 3: - { - CORBA::Object_var obj = NS.Resolve("/myStudyManager"); - SALOMEDS::StudyManager_var studyManager = SALOMEDS::StudyManager::_narrow(obj) ; - if (!CORBA::is_nil(studyManager)) + case 3: + { + string hostname = GetHostname(); + string containerName = "/Containers/"; + containerName += hostname; + containerName += "/SuperVisionContainer"; + + CORBA::Object_var obj = NS.Resolve(containerName.c_str()); + Engines::Container_var SVcontainer = Engines::Container::_narrow(obj) ; + if (!CORBA::is_nil(SVcontainer)) { - MESSAGE("/myStudyManager is found"); - studyManager->ping(); + SVcontainer->ping(); result = true; - MESSAGE("StudyManager was activated"); + MESSAGE("SuperVisionContainer container was activated"); return result; } } @@ -384,7 +409,7 @@ bool InquireServersQThread::pingServer(int iteration, QString& errMessage) } } break; - case 5: + case 8: { CORBA::Object_var obj = NS.Resolve("Kernel/Session"); SALOME::Session_var session = SALOME::Session::_narrow(obj) ; @@ -416,7 +441,7 @@ bool InquireServersQThread::pingServer(int iteration, QString& errMessage) } } break; - case 7: + case 5: { string hostname = GetHostname(); string containerName = "/Containers/"; @@ -434,20 +459,16 @@ bool InquireServersQThread::pingServer(int iteration, QString& errMessage) } } break; - case 8: - { - string hostname = GetHostname(); - string containerName = "/Containers/"; - containerName += hostname; - containerName += "/SuperVisionContainer"; - - CORBA::Object_var obj = NS.Resolve(containerName.c_str()); - Engines::Container_var SVcontainer = Engines::Container::_narrow(obj) ; - if (!CORBA::is_nil(SVcontainer)) + case 7: + { + CORBA::Object_var obj = NS.Resolve("/myStudyManager"); + SALOMEDS::StudyManager_var studyManager = SALOMEDS::StudyManager::_narrow(obj) ; + if (!CORBA::is_nil(studyManager)) { - SVcontainer->ping(); + MESSAGE("/myStudyManager is found"); + studyManager->ping(); result = true; - MESSAGE("SuperVisionContainer container was activated"); + MESSAGE("StudyManager was activated"); return result; } } @@ -489,22 +510,22 @@ bool InquireServersQThread::pingServer(int iteration, QString& errMessage) case 2: serverName = "SALOME_Registry_Server is not loaded. "; break; - case 3: + case 7: serverName = "SALOMEDS_Server is not loaded. "; break; case 4: serverName = "SALOME_ModuleCatalog_Server is not loaded. "; break; - case 5: + case 8: serverName = "SALOME_Session_Server is not loaded. "; break; case 6: serverName = "SALOME_Container FactoryServer is not loaded. "; break; - case 7: + case 5: serverName = "SALOME_ContainerPy.py FactoryServerPy is not loaded. "; break; - case 8: + case 3: serverName = "SALOME_Container SuperVisionContainer is not loaded. "; break; } @@ -520,23 +541,6 @@ QString findFile( QString filename ) QString dir; char* cenv; - // Try ${SALOME_ROOT_DIR}/share/salome/resources directory - cenv = getenv( "KERNEL_ROOT_DIR" ); - if ( cenv ) { - dir.sprintf( "%s", cenv ); - if ( !dir.isEmpty() ) { - dir = addSlash(dir) ; - dir = dir + "share" ; - dir = addSlash(dir) ; - dir = dir + "salome" ; - dir = addSlash(dir) ; - dir = dir + "resources" ; - dir = addSlash(dir) ; - QFileInfo fileInfo( dir + filename ); - if ( fileInfo.isFile() && fileInfo.exists() ) - return fileInfo.filePath(); - } - } // Try CSF_ResourcesDefaults env.var directory ( or directory list ) cenv = getenv( "CSF_ResourcesDefaults" ); if ( cenv ) {