X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=bin%2Forbmodule.py;h=223a91a560880bba9cdb0c60660f034e04b1b25f;hb=ea6b6e43bd022412bc84bdb6972f689b5a69a95e;hp=0499db75b0aa1f732518ce80bc6404c018f22a0a;hpb=288dc1c84630e521220d796b7c88c518f34856d5;p=modules%2Fkernel.git diff --git a/bin/orbmodule.py b/bin/orbmodule.py index 0499db75b..223a91a56 100755 --- a/bin/orbmodule.py +++ b/bin/orbmodule.py @@ -1,5 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2007-2016 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 @@ -7,7 +7,7 @@ # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either -# version 2.1 of the License. +# version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -27,47 +27,45 @@ import sys,os,time import string -from nameserver import * +from nameserver import NamingServer from omniORB import CORBA from launchConfigureParser import verbose # Import the stubs for the Naming service import CosNaming -#from runNS import * # ----------------------------------------------------------------------------- class client: - """Client for SALOME""" + """Client for SALOME""" - def __init__(self,args=None): - #set GIOP message size for bug 10560: impossible to get field values in TUI mode - sys.argv.extend(["-ORBgiopMaxMsgSize", "104857600"]) ## = 100 * 1024 * 1024 + def __init__(self,args=None): # Initialise the ORB self.orb=CORBA.ORB_init(sys.argv, CORBA.ORB_ID) + # Initialise the Naming Service self.initNS(args or {}) - # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- - def initNS(self,args): + def initNS(self,args): # Obtain a reference to the root naming context - obj = self.orb.resolve_initial_references("NameService") + obj = self.orb.resolve_initial_references("NameService") try: self.rootContext = obj._narrow(CosNaming.NamingContext) return except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): self.rootContext = None if verbose(): print "Launch Naming Service++", - + # On lance le Naming Server (doit etre dans le PATH) test = True if args['wake_up_session']: - test = False - pass + test = False + pass if test: - NamingServer(args).run() - pass + NamingServer(args).run() + pass print "Searching Naming Service ", ncount=0 delta=0.1 @@ -88,36 +86,42 @@ class client: sys.exit(1) print " found in %s seconds " % ((ncount-1)*delta) - # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- + + def showNScontext(self,context,dec=''): + if not context: + print "[NS] No context" + return + else: + print context - def showNScontext(self,context,dec=''): - bl,bi=context.list(0) + _,bi = context.list(0) if bi is not None: - ok,b=bi.next_one() - while(ok): + ok,b = bi.next_one() + while(ok): for s in b.binding_name : - print "%s%s.%s" %(dec,s.id,s.kind) - if s.kind == "dir": - obj=context.resolve([s]) + print "%s%s.%s" %(dec,s.id,s.kind) + if s.kind == "dir": + obj = context.resolve([s]) scontext = obj._narrow(CosNaming.NamingContext) self.showNScontext(scontext,dec=dec+' ') - ok,b=bi.next_one() + ok,b = bi.next_one() - # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- - def showNS(self): + def showNS(self): """ Show the content of SALOME naming service """ self.showNScontext(self.rootContext) - # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- - def Resolve(self, Path): - resolve_path=string.split(Path,'/') + def Resolve(self, Path): + resolve_path = string.split(Path,'/') if resolve_path[0] == '': del resolve_path[0] - dir_path=resolve_path[:-1] - context_name=[] + dir_path = resolve_path[:-1] + context_name = [] for e in dir_path: - context_name.append(CosNaming.NameComponent(e,"dir")) + context_name.append(CosNaming.NameComponent(e,"dir")) context_name.append(CosNaming.NameComponent(resolve_path[-1],"object")) try: @@ -132,24 +136,24 @@ class client: obj = None return obj - # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- - def waitNS(self,name,typobj=None,maxcount=240): - count=0 - delta=0.5 + def waitNS(self,name,typobj=None,maxcount=240): + count = 0 + delta = 0.5 print "Searching %s in Naming Service " % name, while(1): count += 1 if count > maxcount : raise RuntimeError, "Impossible de trouver %s" % name - obj=self.Resolve(name) - if obj : + obj = self.Resolve(name) + if obj : print " found in %s seconds " % ((count-1)*delta) break else: sys.stdout.write('+') sys.stdout.flush() time.sleep(delta) - + if typobj is None:return obj nobj = obj._narrow(typobj) @@ -157,42 +161,42 @@ class client: print "%s exists but is not a %s" % (name,typobj) return nobj - if sys.platform != "win32": - def waitNSPID(self, theName, thePID, theTypObj = None): - aCount = 0 - aDelta = 0.5 - anObj = None - print "Searching %s in Naming Service " % theName, - while(1): - try: - os.kill(thePID,0) - except: - raise RuntimeError, "Process %d for %s not found" % (thePID,theName) - aCount += 1 - anObj = self.Resolve(theName) - if anObj: + if sys.platform != "win32": + def waitNSPID(self, theName, thePID, theTypObj = None): + aCount = 0 + aDelta = 0.5 + anObj = None + print "Searching %s in Naming Service " % theName, + while(1): + try: + os.kill(thePID,0) + except: + raise RuntimeError, "Process %d for %s not found" % (thePID,theName) + aCount += 1 + anObj = self.Resolve(theName) + if anObj: print " found in %s seconds " % ((aCount-1)*aDelta) break - else: + 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 + 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 - # -------------------------------------------------------------------------- + # -------------------------------------------------------------------------- - def ResolveLogger(self, name): - context_name=[] + def ResolveLogger(self, name): + context_name = [] context_name.append(CosNaming.NameComponent(name,"")) try: @@ -206,29 +210,28 @@ class client: except (CORBA.TRANSIENT,CORBA.OBJECT_NOT_EXIST,CORBA.COMM_FAILURE): obj = None return obj - - # -------------------------------------------------------------------------- - def waitLogger(self,name,typobj=None,maxcount=40): - count=0 - delta=0.5 + # -------------------------------------------------------------------------- + + def waitLogger(self,name,typobj=None,maxcount=40): + count = 0 + delta = 0.5 print "Searching %s in Naming Service " % name, while(1): count += 1 if count > maxcount : raise RuntimeError, "Impossible de trouver %s" % name - obj=self.ResolveLogger(name) - if obj : + obj = self.ResolveLogger(name) + if obj : print " found in %s seconds " % ((count-1)*delta) break else: sys.stdout.write('+') sys.stdout.flush() time.sleep(delta) - + if typobj is None:return obj nobj = obj._narrow(typobj) if nobj is None: print "%s exists but is not a %s" % (name,typobj) return nobj -