Salome HOME
Make PYHELLO component appear into SALOME_Session_Server_No_Server application
[samples/pyhello.git] / src / PYHELLO / PYHELLO_utils.py
index cb54ac1b82e8143bb2c339dc23490f3b64347fbc..6766427dea0ccebe53acf6c48e5299ae3338d4eb 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
@@ -30,15 +30,15 @@ __all__ = [
     "modulePixmap",
     "verbose",
     "getORB",
-    "getNS",
     "getLCC",
-    "getStudyManager",
     "getEngine",
+    "getStudy",
     "getEngineIOR",
     "findOrCreateComponent",
     "getObjectID",
     ]
 
+
 from omniORB import CORBA
 from SALOME_NamingServicePy import SALOME_NamingServicePy_i
 from LifeCycleCORBA import LifeCycleCORBA
@@ -106,17 +106,6 @@ def getORB():
         pass
     return __orb__
 
-###
-# Get naming service instance
-###
-__naming_service__ = None
-def getNS():
-    global __naming_service__
-    if __naming_service__ is None:
-        __naming_service__ = SALOME_NamingServicePy_i( getORB() )
-        pass
-    return __naming_service__
-
 ##
 # Get life cycle CORBA instance
 ##
@@ -129,16 +118,16 @@ def getLCC():
     return __lcc__
 
 ##
-# Get study manager
-###
-__study_manager__ = None
-def getStudyManager():
-    global __study_manager__
-    if __study_manager__ is None:
-        obj = getNS().Resolve( '/myStudyManager' )
-        __study_manager__ = obj._narrow( SALOMEDS.StudyManager )
+# Get study
+###
+__study__ = None
+def getStudy():
+    global __study__
+    if __study__ is None:
+        obj = __engine__.getNamingService().Resolve( '/Study' )
+        __study__ = obj._narrow( SALOMEDS.Study )
         pass
-    return __study_manager__
+    return __study__
 
 ###
 # Get PYHELLO engine
@@ -147,7 +136,19 @@ __engine__ = None
 def getEngine():
     global __engine__
     if __engine__ is None:
-        __engine__ = getLCC().FindOrLoadComponent( "FactoryServerPy", moduleName() )
+        import KernelBasis
+        if KernelBasis.getSSLMode():
+            import salome
+            import PYHELLO
+            from SALOME_ContainerPy import SALOME_ContainerPy_SSL_i
+            poa = salome.orb.resolve_initial_references("RootPOA")
+            poaManager = poa._get_the_POAManager()
+            poaManager.activate()
+            cpy_i = SALOME_ContainerPy_SSL_i(salome.orb, poa, "FactoryServerPy")
+            cpy_ref = cpy_i._this()
+            __engine__ = PYHELLO.PYHELLO(salome.orb,poa,cpy_ref,"FactoryServerPy", "PYHELLO_inst_2" , moduleName())
+        else:
+            __engine__ = getLCC().FindOrLoadComponent( "FactoryServerPy", moduleName() )
         pass
     return __engine__
 
@@ -164,8 +165,9 @@ def getEngineIOR():
 ###
 # Find or create PYHELLO component object in a study
 ###
-def findOrCreateComponent( study ):
-    father = study.FindComponent( moduleName() )
+def findOrCreateComponent():
+    study = getStudy()
+    father =study.FindComponent( moduleName() )
     if father is None:
         builder = study.NewBuilder()
         father = builder.NewComponent( moduleName() )
@@ -186,9 +188,10 @@ def findOrCreateComponent( study ):
 ###
 # Get object's ID
 ###
-def getObjectID( study, entry ):
+def getObjectID( entry ):
     ID = unknownID()
-    if study and entry:
+    study = getStudy()
+    if entry:
         sobj = study.FindObjectID( entry )
         if sobj is not None:
             test, anAttr = sobj.FindAttribute( "AttributeLocalID" )