]> SALOME platform Git repositories - modules/smesh.git/blobdiff - src/SMESHClient/SMESH_Client.cxx
Salome HOME
Better layout with documentation update
[modules/smesh.git] / src / SMESHClient / SMESH_Client.cxx
index f0473ff66ae43334ce18e62f279260f7d87b7766..1cb0456812bc63b7d1678b21ab6fd2d1713556e9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -28,9 +28,9 @@
 #include "SMESHDS_Mesh.hxx"
 #include "SMESHDS_Script.hxx"
 #include "SMESH_Mesh.hxx"
-#include "SMESH_Component_Generator.hxx"
 
 #include "SALOME_NamingService.hxx"
+#include "SALOME_Fake_NamingService.hxx"
 #include "SALOME_LifeCycleCORBA.hxx"
 
 #include <SALOMEconfig.h>
@@ -39,6 +39,7 @@
 #include CORBA_SERVER_HEADER(SALOME_Exception)
 
 #include "Basics_Utils.hxx"
+#include "KernelBasis.hxx"
 #include "utilities.h"
 
 #ifdef WIN32
@@ -48,6 +49,7 @@
 #endif
 
 #include <stdexcept>
+#include <memory>
 
 #ifndef EXCEPTION
 #define EXCEPTION(TYPE, MSG) {\
@@ -787,31 +789,30 @@ SMESH_Client::GetSMESHGen(CORBA::ORB_ptr theORB,
 
   if(CORBA::is_nil(aMeshGen.in()))
   {
-    Engines::EngineComponent_var isCompoInSSLMode = GetSMESHInstanceHasThis();
-    if( CORBA::is_nil(isCompoInSSLMode) )
-    {
 #ifdef WIN32
-      long aClientPID = (long)_getpid();
+    long aClientPID = (long)_getpid();
 #else
-      long aClientPID =  (long)getpid();
+    long aClientPID =  (long)getpid();
 #endif
 
-      SALOME_NamingService aNamingService(theORB);
-      SALOME_LifeCycleCORBA aLifeCycleCORBA(&aNamingService);
-      Engines::EngineComponent_var aComponent = aLifeCycleCORBA.FindOrLoad_Component("FactoryServer","SMESH");
-      aMeshGen = SMESH::SMESH_Gen::_narrow(aComponent);
-
-      std::string aClientHostName = Kernel_Utils::GetHostname();
-      Engines::Container_var aServerContainer = aMeshGen->GetContainerRef();
-      CORBA::String_var aServerHostName = aServerContainer->getHostName();
-      CORBA::Long aServerPID = aServerContainer->getPID();
-      aMeshGen->SetEmbeddedMode((aClientPID == aServerPID) && (aClientHostName == aServerHostName.in()));
+    std::unique_ptr<SALOME_NamingService_Abstract> aNamingService;
+    if(getSSLMode())
+    {
+      aNamingService.reset(new SALOME_Fake_NamingService);
     }
     else
     {
-      aMeshGen = SMESH::SMESH_Gen::_narrow(isCompoInSSLMode);
+      aNamingService.reset(new SALOME_NamingService(theORB));
     }
-    
+    SALOME_LifeCycleCORBA aLifeCycleCORBA(aNamingService.get());
+    Engines::EngineComponent_var aComponent = aLifeCycleCORBA.FindOrLoad_Component("FactoryServer","SMESH");
+    aMeshGen = SMESH::SMESH_Gen::_narrow(aComponent);
+
+    std::string aClientHostName = Kernel_Utils::GetHostname();
+    Engines::Container_var aServerContainer = aMeshGen->GetContainerRef();
+    CORBA::String_var aServerHostName = aServerContainer->getHostName();
+    CORBA::Long aServerPID = aServerContainer->getPID();
+    aMeshGen->SetEmbeddedMode((aClientPID == aServerPID) && (aClientHostName == aServerHostName.in()));
   }
   theIsEmbeddedMode = aMeshGen->IsEmbeddedMode();
   return aMeshGen;