if nobj is None:
print "%s exists but is not a %s" % (name,typobj)
return nobj
+ def waitNSPID(self, theName, thePID, theTypObj = None):
+ aCount = 0
+ aDelta = 0.5
+ anObj = None
+ print "Searching %s in Naming Service " % theName,
+ while(1):
+ try:
+ aPid, aStatus = os.waitpid(thePID,os.WNOHANG)
+ except Exception, exc:
+ raise "Impossible de trouver %s" % theName
+ aCount += 1
+ anObj = self.Resolve(theName)
+ if anObj:
+ print " found in %s seconds " % ((aCount-1)*aDelta)
+ break
+ else:
+ sys.stdout.write('+')
+ sys.stdout.flush()
+ time.sleep(aDelta)
+ pass
+ pass
+
+ if theTypObj is None:
+ return anObj
+
+ anObject = anObj._narrow(theTypObj)
+ if anObject is None:
+ print "%s exists but is not a %s" % (theName,theTypObj)
+ return anObject
+
# --------------------------------------------------------------------------
"""Generic class for CORBA server launch"""
def initArgs(self):
+ self.PID=None
self.CMD=[]
self.ARGS=[]
if self.args['xterm']:
print "command = ", command
pid = os.spawnvp(os.P_NOWAIT, command[0], command)
process_id[pid]=self.CMD
+ self.PID = pid
class InterpServer(Server):
#print "command = ", command
pid = os.spawnvp(os.P_NOWAIT, command[0], command)
process_id[pid]=self.CMD
+ self.PID = pid
# ---
if 'registry' not in args['embedded']:
myServer=RegistryServer(args)
myServer.run()
- clt.waitNS("/Registry")
+ clt.waitNSPID("/Registry",myServer.PID)
#
# Lancement Catalog Server,
cataServer.setpath(modules_list,modules_root_dir)
cataServer.run()
import SALOME_ModuleCatalog
- clt.waitNS("/Kernel/ModulCatalog",SALOME_ModuleCatalog.ModuleCatalog)
+ clt.waitNSPID("/Kernel/ModulCatalog",cataServer.PID,SALOME_ModuleCatalog.ModuleCatalog)
#
# Lancement SalomeDS Server,
print "RunStudy"
myServer=SalomeDSServer(args)
myServer.run()
- clt.waitNS("/myStudyManager")
+ clt.waitNSPID("/myStudyManager",myServer.PID)
#
# Lancement ContainerManagerServer
if 'cppContainer' in args['standalone']:
myServer=ContainerCPPServer(args)
myServer.run()
- clt.waitNS("/Containers/" + theComputer + "/FactoryServer")
+ clt.waitNSPID("/Containers/" + theComputer + "/FactoryServer",myServer.PID)
#
# Lancement Container Python local,
if 'pyContainer' in args['standalone']:
myServer=ContainerPYServer(args)
myServer.run()
- clt.waitNS("/Containers/" + theComputer + "/FactoryServerPy")
+ clt.waitNSPID("/Containers/" + theComputer + "/FactoryServerPy",myServer.PID)
#
# Lancement Container Supervision local,
if 'supervContainer' in args['standalone']:
myServer=ContainerSUPERVServer(args)
myServer.run()
- clt.waitNS("/Containers/" + theComputer + "/SuperVisionContainer")
+ clt.waitNSPID("/Containers/" + theComputer + "/SuperVisionContainer",myServer.PID)
#
# Lancement Session Server
import SALOME
import SALOME_Session_idl
- session=clt.waitNS("/Kernel/Session",SALOME.Session)
+ session=clt.waitNSPID("/Kernel/Session",mySessionServ.PID,SALOME.Session)
end_time = os.times()
print