]> SALOME platform Git repositories - modules/visu.git/commitdiff
Salome HOME
Fix for bug PAL13948(Impossible to load VISU component in batch mode).
authormzn <mzn@opencascade.com>
Fri, 24 Nov 2006 12:24:36 +0000 (12:24 +0000)
committermzn <mzn@opencascade.com>
Fri, 24 Nov 2006 12:24:36 +0000 (12:24 +0000)
src/ENGINE/VISU_Engine_i.cc
src/ENGINE/VISU_Engine_i.hh

index 0563dad2b58238f88a1bdb38a619b98c493b8334..beed4013c68640be0ca4270d39aea2380441dc2a 100644 (file)
@@ -20,7 +20,6 @@
 #include "VISU_Engine_i.hh"
 #include "utilities.h"
 
-#include CORBA_SERVER_HEADER(SALOME_Session)
 #include CORBA_SERVER_HEADER(SALOME_ModuleCatalog)
 
 #include "SALOME_NamingService.hxx"
@@ -41,15 +40,23 @@ extern "C" {
   VISUEngine_factory(CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId,
                     const char *instanceName, const char *interfaceName) 
   {
-    if(MYDEBUG) MESSAGE("VisuEngine_factory : "<<interfaceName);
-    VISU::VISU_Gen_i * pVISU_Gen = new VISU::VISU_Gen_i(orb, poa, contId, instanceName, interfaceName);
+    MESSAGE("VisuEngine_factory : "<<interfaceName);
+    // Check session: MZN: 24.11.2006 PAL 13948
+    SALOME_NamingService aNamingService(orb);
+    CORBA::Object_ptr anObject = aNamingService.Resolve("/Kernel/Session");
+    SALOME::Session_var aSession = SALOME::Session::_narrow(anObject);
+    if (CORBA::is_nil(aSession))
+      return NULL;
+    
+    VISU::VISU_Gen_i * pVISU_Gen = new VISU::VISU_Gen_i(aSession, orb, poa, contId, instanceName, interfaceName);
     return pVISU_Gen->getId() ;
   }
 }
 
 namespace VISU{
   //===========================================================================
-  VISU_Gen_i::VISU_Gen_i(CORBA::ORB_ptr orb,
+  VISU_Gen_i::VISU_Gen_i(SALOME::Session_ptr session,
+                        CORBA::ORB_ptr orb,
                         PortableServer::POA_ptr poa,
                         PortableServer::ObjectId * contId, 
                         const char *instanceName, 
@@ -58,11 +65,8 @@ namespace VISU{
   {
     _thisObj = this ;
     _id = _poa->activate_object(_thisObj);
-    SALOME_NamingService aNamingService(orb);
-    CORBA::Object_ptr anObject = aNamingService.Resolve("/Kernel/Session");
-    SALOME::Session_var aSession = SALOME::Session::_narrow(anObject);
-    //aSession->GetInterface(); 
-    Engines::Component_var aComponent = aSession->GetComponent("libVISUEngineImpl.so");
+    
+    Engines::Component_var aComponent = session->GetComponent("libVISUEngineImpl.so");
     myVisuGen = VISU::VISU_Gen::_narrow(aComponent);
   } 
 
index 3f605b435e65e61e1ca1a7eaa3f048b7d0419a4f..f4be886571986bb1b44c0d1e15f9ba480d019687 100644 (file)
@@ -24,6 +24,7 @@
 #include "SALOMEconfig.h"
 #include CORBA_SERVER_HEADER(VISU_Gen)
 #include CORBA_SERVER_HEADER(MED)
+#include CORBA_SERVER_HEADER(SALOME_Session)
 #include CORBA_SERVER_HEADER(SALOMEDS)
 #include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
 
@@ -37,7 +38,8 @@ namespace VISU{
     VISU_Gen_i();
     VISU_Gen_i(const VISU::VISU_Gen_i &);
   public:
-    VISU_Gen_i(CORBA::ORB_ptr orb,
+    VISU_Gen_i(SALOME::Session_ptr session,
+              CORBA::ORB_ptr orb,
               PortableServer::POA_ptr poa,
               PortableServer::ObjectId * contId, 
               const char *instanceName,