2 # Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
4 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
5 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
7 # This library is free software; you can redistribute it and/or
8 # modify it under the terms of the GNU Lesser General Public
9 # License as published by the Free Software Foundation; either
10 # version 2.1 of the License.
12 # This library is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 # Lesser General Public License for more details.
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with this library; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
23 # SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
24 # File : batchmode_SuperV.py
28 from batchmode_salome import orb
29 from batchmode_salome import lcc
30 from batchmode_salome import naming_service
31 from batchmode_salome import CORBA
32 from batchmode_salome import myStudy
33 import SALOME_ModuleCatalog
38 from LifeCycleCORBA import *
39 from SALOME_NamingServicePy import *
42 import SALOME_ModuleCatalog
43 from batchmode_salome import *
45 # from libSuperVision_Swig import SuperV_Swig
46 # print 'SuperV_Swig imported'
49 orb = CORBA.ORB_init([''], CORBA.ORB_ID)
50 #lcc = LifeCycleCORBA(orb)
51 while lcc._catalog == None:
52 lcc = LifeCycleCORBA(orb)
53 naming_service = SALOME_NamingServicePy_i(orb)
59 import SALOMEDS_Attributes_idl
61 # SuperVision = SuperV_Swig( len(sys.argv) , sys.argv )
62 # SuperVision.Swig = 1
63 # print 'SuperV_Swig created'
65 # SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
66 # SuperVision.Swig = 0
67 # print 'Supervision Component loaded'
69 SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
73 while modulecatalog == None:
74 modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")
76 myBuilder = myStudy.NewBuilder()
77 father = myStudy.FindComponent("SUPERV")
79 father = myBuilder.NewComponent("SUPERV")
80 A1 = myBuilder.FindOrCreateAttribute(father, "AttributeName");
81 FName = A1._narrow(SALOMEDS.AttributeName)
82 #FName.SetValue("Supervision")
83 Comp = modulecatalog.GetComponent( "SUPERV" )
84 FName.SetValue(Comp._get_componentusername())
85 A2 = myBuilder.FindOrCreateAttribute(father, "AttributePixMap");
86 aPixmap = A2._narrow(SALOMEDS.AttributePixMap);
87 aPixmap.SetPixMap( "ICON_OBJBROWSER_Supervision" );
88 myBuilder.DefineComponentInstance(father,SuperVision)
91 def PortInputFloat(obj, x):
92 return obj.Input( SuperVision.AnyValue( CORBA.Any(CORBA.TC_double, x)))
94 def PortInputLong(obj, x):
95 return obj.Input( SuperVision.AnyValue( CORBA.Any(CORBA.TC_long, x)))
97 def PortInputObject(obj, x):
99 return obj.Input( SuperVision.AnyValue( CORBA.Any(CORBA.TC_Object, x)))
101 return obj.Input( SuperVision.AnyValue( x ) )
103 def PortInputString(obj, x):
104 return obj.Input( SuperVision.AnyValue( CORBA.Any(CORBA.TC_string, x)))
106 def InputFloat(obj, nodein_port, x):
107 return obj.Input(nodein_port, SuperVision.AnyValue( CORBA.Any(CORBA.TC_double, x)))
109 def InputLong(obj, nodein_port, x):
110 return obj.Input(nodein_port, SuperVision.AnyValue( CORBA.Any(CORBA.TC_long, x)))
112 def InputObject(obj, nodein_port, x):
114 return obj.Input(nodein_port, SuperVision.AnyValue( CORBA.Any(CORBA.TC_Object, x)))
116 return obj.Input(nodein_port, SuperVision.AnyValue( x ) )
118 def InputString(obj, nodein_port, x):
119 return obj.Input(nodein_port, SuperVision.AnyValue( CORBA.Any(CORBA.TC_string, x)))
123 dataflow = SuperVision.getGraph(ior)
125 itr = myStudy.NewChildIterator(father)
128 res,A=item.FindAttribute("AttributeName")
130 aName = A._narrow(SALOMEDS.AttributeName)
131 if aName.Value() == name :
132 res, A = myBuilder.FindOrCreateAttribute(item, "AttributeIOR")
133 anIOR = A._narrow(SALOMEDS.AttributeIOR);
134 anIOR.SetValue(dataflow.getIOR())
137 obj = myBuilder.NewObject(father)
138 A=myBuilder.FindOrCreateAttribute(obj, "AttributeName")
139 aName=A._narrow(SALOMEDS.AttributeName)
141 A=myBuilder.FindOrCreateAttribute(obj, "AttributeIOR")
142 anIOR = A._narrow(SALOMEDS.AttributeIOR)
143 anIOR.SetValue(dataflow.getIOR())
145 typestring = re.compile(r"_[^_]+_([^_]+)_.*")
147 def getRealArgs(self,args):
153 types.append(typestring.match(self).group(1))
156 types.append(type(self))
157 realargs.append(self)
161 types.append(typestring.match(a).group(1))
164 types.append(type(a))
167 return tuple(types), tuple(realargs)
169 bs_AddInput_valuedict = {
170 (InstanceType, FloatType) : PortInputFloat,
171 (InstanceType, IntType) : PortInputLong,
172 (InstanceType, StringType) : PortInputString,
173 (InstanceType, InstanceType) : PortInputObject,
174 (InstanceType, StringType, FloatType) : InputFloat,
175 (InstanceType, StringType, IntType) : InputLong,
176 (InstanceType, StringType, StringType) : InputString,
177 (InstanceType, StringType, InstanceType) : InputObject,
178 (InstanceType, StringType, ListType) : InputObject,
182 def Args( aService , aNodeName , verbose ):
183 lenin = len( aService.ServiceinParameter )
184 infos = aNodeName + 'info = "'
185 infos = infos + 'NodeName : ' + aNodeName + '\\n'
186 infos = infos + 'ServiceName : ' + aService.ServiceName + '\\n'
187 infos = infos + 'PortNames : \\n'
188 defnames = aNodeName + " = " + "'" + aNodeName + "' ; "
191 argname = aNodeName + aService.ServiceinParameter[ i ].Parametername
192 valname = aNodeName + "\\\\"
193 valname = valname + aService.ServiceinParameter[ i ].Parametername
194 defnames = defnames + argname + " = " + "'" + valname + "' ; "
195 infos = infos + str(i) + '. ' + argname + ' : Input'
196 infos = infos + str(i) + ' '
197 infos = infos + aService.ServiceinParameter[ i ].Parametername + ' '
198 infos = infos + aService.ServiceinParameter[ i ].Parametertype + '\\n'
200 lenout = len( aService.ServiceoutParameter )
203 argname = aNodeName + aService.ServiceoutParameter[ i ].Parametername
204 valname = aNodeName + "\\\\"
205 valname = valname + aService.ServiceoutParameter[ i ].Parametername
206 defnames = defnames + argname + " = " + "'" + valname + "' ; "
207 infos = infos + str(lenin+i) + '. ' + argname + ' : Output'
208 infos = infos + str(i) + ' '
209 infos = infos + aService.ServiceoutParameter[ i ].Parametername + ' '
210 infos = infos + aService.ServiceoutParameter[ i ].Parametertype + '\\n'
213 defnames = defnames + infos
215 defnames = defnames + " ; print " + aNodeName + "info"
218 def Service_Swig( aCatalogService ) :
219 aService = SuperVision.Service()
220 aService.ServiceName = aCatalogService.ServiceName
222 while i < len( aCatalogService.ServiceinParameter ) :
223 p = SuperVision.ServicesParameter( aCatalogService.ServiceinParameter[i].Parametertype , aCatalogService.ServiceinParameter[i].Parametername )
224 SuperVision.AddInParameter( aService , p )
227 while i < len( aCatalogService.ServiceoutParameter ) :
228 p = SuperVision.ServicesParameter( aCatalogService.ServiceoutParameter[i].Parametertype , aCatalogService.ServiceoutParameter[i].Parametername )
229 SuperVision.AddOutParameter( aService , p )
233 ##########################################################
235 ##########################################################
236 def __init__( self , aNode , Verbose ):
238 self.N.Verbose = Verbose
242 return self.N.Service()
245 def CreationDate( self ):
246 return self.N.CreationDate()
247 def LastUpdateDate( self ):
248 return self.N.LastUpdateDate()
250 return self.N.Version()
252 return self.N.Author()
254 return self.N.Comment()
256 def SetName( self , aNewName ):
257 return self.N.SetName( aNewName )
258 def SetAuthor( self , anAuthor ):
259 return self.N.SetAuthor( anAuthor )
260 def SetComment( self , aComment ):
261 return self.N.SetComment( aComment )
264 print "Name ",self.N.Name()
265 if self.N.IsFactory() :
266 print "ComponentName ",self.N.GetComponentName()
267 print "InterfaceName ",self.N.GetInterfaceName()
268 if self.N.IsStreamGraph() :
269 Timeout,DataStreamTrace,DeltaTime = self.G.StreamParams()
270 print "Timeout",Timeout
271 print "DataStreamTrace",DataStreamTrace
272 print "DeltaTime",DeltaTime
273 aService = self.N.Service()
274 print "Service Name ",aService.ServiceName
275 lenin = len( aService.ServiceinParameter )
276 print " ",lenin," input argument(s) :"
279 print " ",i,". ",aService.ServiceinParameter[ i ].Parametername," ",aService.ServiceinParameter[ i ].Parametertype
281 lenout = len( aService.ServiceoutParameter )
282 print " ",lenout," output argument(s) :"
285 print " ",i,". ",aService.ServiceoutParameter[ i ].Parametername," ",aService.ServiceoutParameter[ i ].Parametertype
287 aKind = self.N.Kind()
288 print "KindOfNode",aKind
289 aFirstCreation = self.N.CreationDate()
290 print "Creation Date ",aFirstCreation.Day,"-",aFirstCreation.Month,"-",aFirstCreation.Year," ",aFirstCreation.Hour,":",aFirstCreation.Minute,":",aFirstCreation.Second
291 aLastModification = self.N.LastUpdateDate()
292 print "Update Date ",aLastModification.Day,"-",aLastModification.Month,"-",aLastModification.Year," ",aLastModification.Hour,":",aLastModification.Minute,":",aLastModification.Second
293 print "Version ",self.N.Version()
294 print "Author ",self.N.Author()
295 if self.N.IsFactory() :
296 print "Container ",self.N.GetContainer()
297 print "Comment ",self.N.Comment()
298 print "Coords ",self.N.X()," ",self.N.Y()
299 def Port( self , aPortName ):
300 aPort = self.N.Port( aPortName )
302 myPort = Port( aPort , self.N.Verbose )
305 print "Error while creating the Port : ",aPortName
307 def Input( self , *args ):
308 types, realargs = getRealArgs(self.N,args)
309 fn = bs_AddInput_valuedict[types]
310 anInput = apply( fn, realargs)
312 myInput = Port( anInput , self.N.Verbose )
314 ErrMsg = "Failed to create the Input"
318 # def BusPort( self , InOutParameterName , InOutParameterType ):
319 # sts,inp,outp = self.N.BusPort( InOutParameterName ,
320 # InOutParameterType )
321 # inp = Port( inp , self.N.Verbose )
322 # outp = Port( outp , self.N.Verbose )
323 # return sts,inp,outp
324 # def BusPorts( self , InputParameterName , InputParameterType ,
325 # OutputParameterName , OutputParameterType ):
326 # sts,inp,outp = self.N.BusPorts( InputParameterName ,
327 # InputParameterType ,
328 # OutputParameterName ,
329 # OutputParameterType )
330 # inp = Port( inp , self.N.Verbose )
331 # outp = Port( outp , self.N.Verbose )
332 # return sts,inp,outp
333 def InStreamPort( self , aParameterName , aParameterType , aDependency ):
334 aPort = self.N.InStreamPort( aParameterName , aParameterType , aDependency )
336 myPort = StreamPort( aPort , self.N.Verbose )
339 print "Error while creating the Port : ",aParameterName
341 def OutStreamPort( self , aParameterName , aParameterType , aDependency ):
342 aPort = self.N.OutStreamPort( aParameterName , aParameterType , aDependency )
344 myPort = StreamPort( aPort , self.N.Verbose )
347 print "Error while creating the Port : ",aParameterName
349 def GetInPort( self , aParameterName ):
350 aPort = self.N.GetInPort( aParameterName )
352 myPort = Port( aPort , self.N.Verbose )
355 print "Error while creating the Port : ",aParameterName
357 def GetOutPort( self , aParameterName ):
358 aPort = self.N.GetOutPort( aParameterName )
360 myPort = Port( aPort , self.N.Verbose )
363 print "Error while creating the Port : ",aParameterName
365 def GetInStreamPort( self , aParameterName ):
366 aPort = self.N.GetInStreamPort( aParameterName )
368 myPort = StreamPort( aPort , self.N.Verbose )
371 print "Error while creating the Port : ",aParameterName
373 def GetOutStreamPort( self , aParameterName ):
374 aPort = self.N.GetOutStreamPort( aParameterName )
376 myPort = StreamPort( aPort , self.N.Verbose )
379 print "Error while creating the Port : ",aParameterName
382 ports = self.N.Ports()
384 while i < len( ports ) :
385 ports[ i ] = Port( ports[i] , self.N.Verbose )
388 def StreamPorts( self ):
389 ports = self.N.StreamPorts()
391 while i < len( ports ) :
392 ports[ i ] = StreamPort( ports[i] , self.N.Verbose )
395 def AllPorts( self ):
396 allports = self.N.Ports()
397 lenports = len( allports )
400 allports[ i ] = Port( allports[i] , self.N.Verbose )
402 ports = self.N.StreamPorts()
404 while i < len( ports ) :
405 allports.append( StreamPort( ports[i] , self.N.Verbose ) )
408 def ListPorts( self , *args ):
409 if len( args ) == 0 :
410 aName = self.N.Name()
413 ports = self.AllPorts()
417 portsname = ports[ 0 ].Name()
418 bs = portsname.find('\\')
420 portsname1,portsname2 = portsname.split('\\')
421 portsname = portsname1 + portsname2
422 if ports[ 0 ].IsInput():
423 listofports = 'I' + aName + portsname
425 listofports = 'O' + aName + portsname
427 while i < len( ports ) :
428 portsname = ports[ i ].Name()
429 bs = portsname.find('\\')
431 portsname1,portsname2 = portsname.split('\\')
432 portsname = portsname1 + portsname2
433 if ports[ i ].IsInput():
434 listofports = listofports + ',' + 'I' + aName + portsname
436 listofports = listofports + ',' + 'O' + aName + portsname
439 if len( ports ) == 1 :
440 listofports = "[" + listofports + "] = " + aName + ".AllPorts()"
442 listofports = listofports + " = " + aName + ".AllPorts()"
444 def PrintPorts( self ):
445 ports = self.AllPorts()
447 while i < len( ports ) :
449 if ports[ i ].IsInput() :
451 if ( ports[ i ].IsDataStream() ) & ( self.N.IsStreamGraph() == 0 ) :
452 if ports[ i ].IsInput() :
453 sts,aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation = ports[ i ].Params()
454 print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString(),ports[ i ].Dependency(),aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation
456 numberofvalues = ports[ i ].NumberOfValues()
457 print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString(),ports[ i ].Dependency(),'NumberOfValues',numberofvalues
459 print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString()
462 links = self.N.Links()
464 while i < len( links ) :
465 links[ i ] = Link( links[i] , self.N.Verbose )
468 def StreamLinks( self ) :
469 links = self.N.StreamLinks()
471 while i < len( links ) :
472 links[ i ] = StreamLink( links[i] , self.N.Verbose )
475 def AllLinks( self ) :
476 alllinks = self.N.Links()
477 lenlinks = len( alllinks )
480 alllinks[ i ] = Link( alllinks[i] , self.N.Verbose )
482 links = self.N.StreamLinks()
484 while i < len( links ) :
485 alllinks.append( StreamLink( links[i] , self.N.Verbose ) )
488 def ListLinks( self , *args ):
489 links = self.AllLinks()
491 listoflinks = 'L' + links[ 0 ].OutPort().Node().Name()
492 listoflinks = listoflinks + links[ 0 ].OutPort().Name()
493 listoflinks = listoflinks + links[ 0 ].InPort().Node().Name()
494 listoflinks = listoflinks + links[ 0 ].InPort().Name()
496 while i < len( links ) :
497 listoflinks = listoflinks + ',' + 'L' + links[ i ].OutPort().Node().Name()
498 listoflinks = listoflinks + links[ i ].OutPort().Name()
499 listoflinks = listoflinks + links[ i ].InPort().Node().Name()
500 listoflinks = listoflinks + links[ i ].InPort().Name()
503 if len( args ) == 0 :
504 aName = self.N.Name()
507 if len( links ) == 1 :
508 listoflinks = "[" + listoflinks + "] = " + aName + ".AllLinks()"
510 listoflinks = listoflinks + " = " + aName + ".AllLinks()"
512 def PrintLinks( self ):
513 links = self.AllLinks()
515 while i < len( links ) :
518 def IsStreamGraph( self ):
519 return self.N.IsStreamGraph()
521 return self.N.IsGraph()
523 return self.N.IsMacro()
524 def IsFlowMacro( self ):
525 return self.N.IsFlowMacro()
526 def IsStreamMacro( self ):
527 return self.N.IsStreamMacro()
528 def IsComputing( self ):
529 return self.N.IsComputing()
530 def IsFactory( self ):
531 return self.N.IsFactory()
532 def IsInLine( self ):
533 return self.N.IsInLine()
535 return self.N.IsGOTO()
537 return self.N.IsLoop()
538 def IsEndLoop( self ):
539 return self.N.IsEndLoop()
540 def IsSwitch( self ):
541 return self.N.IsSwitch()
542 def IsEndSwitch( self ):
543 return self.N.IsEndSwitch()
544 def GraphLevel( self ) :
545 return self.N.GraphLevel()
546 def SubGraph( self ):
547 return self.N.SubGraph()
548 def SubStreamGraph( self ):
549 return self.N.SubStreamGraph()
551 return self.N.Thread()
552 def IsWaiting( self ):
553 return self.N.IsWaiting()
554 def IsRunning( self ):
555 return self.N.IsRunning()
557 return self.N.IsDone()
558 def IsSuspended( self ):
559 return self.N.IsSuspended()
561 return self.N.State()
563 return self.N.Control()
564 def ControlClear( self ):
565 return self.N.ControlClear()
567 return self.N.ReadyW()
568 def RunningW( self ):
569 return self.N.RunningW()
571 return self.N.DoneW()
572 def SuspendedW( self ):
573 return self.N.SuspendedW()
575 # return self.N.ReRun()
576 #def ReStart( self ):
577 # return self.N.ReStart()
578 #def ReRunAt( self , aNodeName ):
579 # return self.N.ReRunAt( aNodeName )
580 #def ReStartAt( self , aNodeName ):
581 # return self.N.ReStartAt( aNodeName )
586 def KillDone( self ):
587 return self.N.KillDone()
589 return self.N.Suspend()
590 def SuspendDone( self ):
591 return self.N.SuspendDone()
593 return self.N.Resume()
596 def Coords( self , X , Y ):
597 return self.N.Coords( X , Y )
605 return self.N.CpuUsed()
607 ##########################################################
609 ##########################################################
610 def __init__( self , aNode , Verbose ):
612 self.N.Verbose = Verbose
613 def GetComponentName( self ):
614 return self.N.GetComponentName()
615 def GetInterfaceName( self ):
616 return self.N._get_interfaceName()
617 def GetContainer( self ):
618 return self.N.GetContainer()
619 def SetComponentName( self , aComponentName ):
620 return self.N.SetComponentName( aComponentName )
621 def SetInterfaceName( self , anInterfaceName ):
622 return self.N.SetInterfaceName( anInterfaceName )
623 def SetContainer( self , aComputer ):
624 return self.N.SetContainer( aComputer )
626 return self.N.isCimpl
628 ##########################################################
630 ##########################################################
631 def __init__( self , aNode , Verbose ):
633 self.N.Verbose = Verbose
634 def Edit( self , FuncName , PyFunc ) :
637 suf = str(random.randrange(1,10000))
638 file = '/tmp/' + FuncName + '_' + suf + '.py'
642 fd = os.open( file , os.O_CREAT | os.O_WRONLY | os.O_TRUNC )
646 while ( i < len( PyFunc ) ) :
647 print i,'/',len( PyFunc ),PyFunc[ i ]
648 os.write( fd , PyFunc[ i ] + '\n' )
651 edit = '${EDITOR} ' + file
653 fd = os.open( file , os.O_RDONLY )
654 line = os.read( fd , 132 )
658 line = os.read( fd , 132 )
660 PyFunc = res.splitlines()
662 while i < len( PyFunc ) :
666 print "Open of",file,"failed."
668 def SetPyFunction( self , FuncName , aPyFunction ):
669 return self.N.SetPyFunction( FuncName , aPyFunction )
670 def PyFunction( self ):
671 return self.N.PyFunction()
672 def PyFuncName( self ):
673 return self.N.PyFuncName()
674 def InPort( self , aParameterName , aParameterType ):
675 aPort = self.N.InPort( aParameterName ,
678 myPort = Port( aPort , self.N.Verbose )
681 print "Error while creating the Port : ",aParameterName
683 def OutPort( self , aParameterName , aParameterType ):
684 aPort = self.N.OutPort( aParameterName ,
687 myPort = Port( aPort , self.N.Verbose )
690 print "Error while creating the Port : ",aParameterName
693 PyFunc = self.N.PyFunction()
694 PyFunc = self.Edit( self.N.PyFuncName() , PyFunc )
695 self.N.SetPyFunction( self.N.PyFuncName() , PyFunc )
697 ##########################################################
699 ##########################################################
700 def __init__( self , aNode , Verbose ):
702 self.N.Verbose = Verbose
703 def SetCoupled( self , anInLineNode ):
705 node = self.N.SetCoupled( anInLineNode )
710 node = self.N.Coupled()
713 node = INode( node , self.N.Verbose )
715 node = LNode( node , self.N.Verbose )
716 elif node.IsEndLoop() :
717 node = ELNode( node , self.N.Verbose )
718 elif node.IsSwitch() :
719 node = SNode( node , self.N.Verbose )
720 elif node.IsEndSwitch() :
721 node = ESNode( node , self.N.Verbose )
724 ##########################################################
726 ##########################################################
727 def __init__( self , aNode , Verbose ):
729 self.N.Verbose = Verbose
730 def SetPyInit( self , InitName , aPyFunction ):
731 return self.N.SetPyInit( InitName , aPyFunction )
733 return self.N.PyInit()
734 def PyInitName( self ) :
735 return self.N.PyInitName()
737 PyFunc = self.N.PyFunction()
738 PyFunc = self.Edit( self.N.PyFuncName() , PyFunc )
739 self.N.SetPyFunction( self.N.PyFuncName() , PyFunc )
740 def SetPyMore( self , MoreName , aPyFunction ):
741 return self.N.SetPyMore( MoreName , aPyFunction )
743 return self.N.PyMore()
744 def PyMoreName( self ) :
745 return self.N.PyMoreName()
747 PyMore = self.N.PyMore()
748 PyMore = self.Edit( self.N.PyMoreName() , PyMore )
749 self.N.SetPyMore( self.N.PyMoreName() , PyMore )
750 def SetPyNext( self , NextName , aPyFunction ):
751 return self.N.SetPyNext( NextName , aPyFunction )
753 return self.N.PyNext()
754 def PyNextName( self ) :
755 return self.N.PyNextName()
757 PyNext = self.N.PyNext()
758 PyNext = self.Edit( self.N.PyNextName() , PyNext )
759 self.N.SetPyNext( self.N.PyNextName() , PyNext )
761 ##########################################################
763 ##########################################################
764 def __init__( self , aNode , Verbose ):
766 self.N.Verbose = Verbose
768 ##########################################################
770 ##########################################################
771 def __init__( self , aNode , Verbose ):
773 self.N.Verbose = Verbose
775 ##########################################################
777 ##########################################################
778 def __init__( self , aNode , Verbose ):
780 self.N.Verbose = Verbose
782 ##########################################################
783 #class ServicesParameter_Swig :
784 ##########################################################
785 # def __init__( self , aServicesParameter ):
786 # self.Parametertype = aServicesParameter.Parametertype
787 # self.Parametername = aServicesParameter.Parametername
789 ##########################################################
791 ##########################################################
792 def __init__( self , aName ):
794 graph = SuperVision.Graph( aName )
797 graph = aName.G.Copy()
801 if graph.IsStreamGraph() :
802 aGraph = graph.ToStreamGraph()
804 graph = StreamGraph( aGraph )
806 print "Graph creation failed"
812 print "Graph creation failed"
813 def CNode( self , *args ):
814 if len( args ) == 1 :
817 aComponent = args[ 0 ]
818 anInterface = args[ 1 ]
820 NodeComponent = modulecatalog.GetComponent( aComponent )
821 aService = NodeComponent.GetService( anInterface , aService )
822 aNode = self.G.CNode( aService )
824 myNode = CNode( aNode , self.G.Verbose )
826 ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
830 def Node( self , aComponent , anInterface , aService ):
831 #if SuperVision.Swig :
832 #aService = Service_Swig( aService )
833 return self.FNode( aComponent , anInterface , aService )
834 def FNodeImpl( self , aComponent , anInterface , aService, isCimpl ):
835 NodeComponent = modulecatalog.GetComponent( aComponent )
836 aService = NodeComponent.GetService( anInterface , aService )
837 aNode = self.G.FNode( aComponent , anInterface , aService, isCimpl )
839 aNode.isCimpl = isCimpl
840 myNode = FNode( aNode , self.G.Verbose )
842 ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
846 def FNode( self , aComponent , anInterface , aService ):
847 # create node with C++ implementation type by default
848 NodeComponent = modulecatalog.GetComponent( aComponent )
849 aService = NodeComponent.GetService( anInterface , aService )
850 #if SuperVision.Swig :
851 #aService = Service_Swig( aService )
852 aNode = self.G.FNode( aComponent , anInterface , aService, SALOME_ModuleCatalog.SO )
855 myNode = FNode( aNode , self.G.Verbose )
857 ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
861 def INode( self , FuncName , aPythonFunction ):
862 aNode = self.G.INode( FuncName , aPythonFunction )
864 myNode = INode( aNode , self.G.Verbose )
866 ErrMsg = "Failed to create a Node"
870 def GNode( self , FuncName , aPythonFunction , anINode ):
871 aNode = self.G.GNode( FuncName , aPythonFunction , anINode )
873 myNode = GNode( aNode , self.G.Verbose )
875 ErrMsg = "Failed to create a Node"
879 def LNode( self , InitName , InitFunction , MoreName , MoreFunction , NextName , NextFunction ):
880 aNode,anEndOfLoop = self.G.LNode( InitName , InitFunction , MoreName , MoreFunction , NextName , NextFunction )
882 myNode = LNode( aNode , self.G.Verbose )
883 myEndOfLoop = INode( anEndOfLoop , self.G.Verbose )
884 return myNode,myEndOfLoop
885 ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
889 def SNode( self , FuncName , aPythonFunction ):
890 aNode,anEndOfSwitch = self.G.SNode( FuncName , aPythonFunction )
892 myNode = SNode( aNode , self.G.Verbose )
893 myEndOfSwitch = INode( anEndOfSwitch , self.G.Verbose )
894 return myNode,myEndOfSwitch
895 ErrMsg = "Failed to create a Node"
899 # def LoopNode( self , aComponent , anInterface , aService , aNodeName ):
900 # NodeComponent = modulecatalog.GetComponent( aComponent )
901 # aService = NodeComponent.GetService( anInterface , aService )
902 # aNode,anEndNode = self.G.LoopNode( aComponent , anInterface , aService , aNodeName )
904 # myEndNode = anEndNode
906 # myNode = Node( aNode , self.G.Verbose )
907 # if anEndNode != None :
908 # myEndNode = Node( anEndNode , self.G.Verbose )
909 # if ( aNode != None ) & ( anEndNode != None ) :
910 # return myNode,myEndNode
911 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
912 # if self.G.Verbose :
914 # return aNode,anEndNode
915 # def SwitchNode( self , aComponent , anInterface , aService , aNodeName ):
916 # NodeComponent = modulecatalog.GetComponent( aComponent )
917 # aService = NodeComponent.GetService( anInterface , aService )
918 # aNode,anEndNode = self.G.SwitchNode( aComponent , anInterface , aService , aNodeName )
920 # myEndNode = anEndNode
922 # myNode = Node( aNode , self.G.Verbose )
923 # if anEndNode != None :
924 # myEndNode = Node( anEndNode , self.G.Verbose )
925 # if ( aNode != None ) & ( anEndNode != None ) :
926 # return myNode,myEndNode
927 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
928 # if self.G.Verbose :
930 # return aNode,anEndNode
931 # def LNode( self , aNodeName ):
932 # aNode = self.G.LNode( aNodeName )
934 # myNode = Node( aNode , self.G.Verbose )
936 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
937 # if self.G.Verbose :
940 # def LService( self , aComponent , anInterface , aService ):
941 # NodeComponent = modulecatalog.GetComponent( aComponent )
942 # aService = NodeComponent.GetService( anInterface , aService )
943 # aNode = self.G.LService( aComponent , anInterface , aService )
945 # myNode = Node( aNode , self.G.Verbose )
947 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
948 # if self.G.Verbose :
951 # def CNode( self , aNodeName ):
952 # aNode = self.G.CNode( aNodeName )
954 # myNode = Node( aNode , self.G.Verbose )
956 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
957 # if self.G.Verbose :
960 # def CService( self , aComponent , anInterface , aService ):
961 # NodeComponent = modulecatalog.GetComponent( aComponent )
962 # aService = NodeComponent.GetService( anInterface , aService )
963 # aNode = self.G.CService( aComponent , anInterface , aService )
965 # myNode = Node( aNode , self.G.Verbose )
967 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
968 # if self.G.Verbose :
971 def MNode( self , aGraphXml ):
972 aMNode = self.G.MNode( aGraphXml )
974 myMNode = MNode( aMNode , self.G.Verbose )
976 ErrMsg = "Failed to create a MNode"
980 def GraphMNode( self , aGraph ):
981 aGraphMNode = self.G.GraphMNode( aGraph.G )
982 if aGraphMNode != None :
983 myMNode = MNode( aGraphMNode , self.G.Verbose )
985 ErrMsg = "Failed to create a MNode"
989 def FlowObjRef( self ) :
990 aGraph = self.G.FlowObjRef()
992 myGraph = Graph( aGraph )
995 def StreamObjRef( self ) :
996 aGraph = self.G.StreamObjRef()
998 myGraph = StreamGraph( aGraph )
1001 def PrintService( self , aComponent , anInterface , aService ):
1002 NodeComponent = modulecatalog.GetComponent( aComponent )
1003 aService = NodeComponent.GetService( anInterface , aService )
1004 print "ServiceName ",aService.ServiceName," :"
1005 lenin = len( aService.ServiceinParameter )
1006 print " ",lenin," input argument(s) :"
1009 print " ",i,". ",aService.ServiceinParameter[ i ].Parametername," ",aService.ServiceinParameter[ i ].Parametertype
1011 lenout = len( aService.ServiceoutParameter )
1012 print " ",lenout," output argument(s) :"
1015 print " ",i,". ",aService.ServiceoutParameter[ i ].Parametername," ",aService.ServiceoutParameter[ i ].Parametertype
1017 def Link( self , aFromNodePort , aToNodePort ):
1018 aLink = self.G.Link( aFromNodePort.P , aToNodePort.P )
1020 myLink = Link( aLink , self.G.Verbose )
1022 ErrMsg = "Failed to create a Link from " + aFromNodePort.Node().Name() + "(" + aFromNodePort.Name() + ") to " + aToNodePort.Node().Name() + "(" + aToNodePort.Name() + ")"
1026 def Messages( self ):
1027 return self.G.Messages()
1028 def Import( self , anXmlFileName ):
1029 return self.G.Import( anXmlFileName )
1030 def Export( self , anXmlFileName ):
1031 return self.G.Export( anXmlFileName )
1032 def IsReadOnly( self ) :
1033 return self.G.IsReadOnly()
1034 def ComponentRef( self , aFactoryServer , aComponent ) :
1035 return self.G.ComponentRef( aFactoryServer , aComponent )
1036 def IsValid( self ):
1037 return self.G.IsValid()
1038 def IsExecutable( self ):
1039 return self.G.IsExecutable()
1040 def IsEditing( self ):
1041 return self.G.IsEditing()
1042 def IsExecuting( self ):
1043 return self.G.IsExecuting()
1044 def LevelMax( self ):
1045 return self.G.LevelMax()
1046 def ThreadsMax( self ):
1047 return self.G.ThreadsMax()
1048 def SubGraphsNumber( self ):
1049 return self.G.SubGraphsNumber()
1050 def LevelNodes( self , aLevel ):
1051 nodes = self.G.LevelNodes( aLevel )
1052 return self.nodesTuple( nodes )
1053 def Run( self , *args ):
1055 aService = self.Service()
1059 print aService.ServiceinParameter[ i ].Parametername," = ",args[i]
1060 self.Input( aService.ServiceinParameter[ i ].Parametername , args[i] )
1064 def Start( self , *args ):
1066 aService = self.Service()
1070 print aService.ServiceinParameter[ i ].Parametername," = ",args[i]
1071 self.Input( aService.ServiceinParameter[ i ].Parametername , args[i] )
1074 return self.G.Start()
1076 sts,aNode,anEvent,aState = self.G.Event()
1078 return sts,aNode,anEvent,aState
1079 def EventNoW( self ):
1080 sts,aNode,anEvent,aState = self.G.EventNoW()
1082 return sts,aNode,anEvent,aState
1084 sts,aNode,anEvent,aState = self.G.EventW()
1086 return sts,aNode,anEvent,aState
1089 sts,aNode,anEvent,aState = self.G.EventW()
1091 print sts,aNode.Thread(),aNode.SubGraph(),aNode.Name(),anEvent,aState
1093 def Threads( self ):
1094 return self.G.Threads()
1095 def SuspendedThreads( self ):
1096 return self.G.SuspendedThreads()
1097 def LastLevelDone( self ):
1098 return self.G.LastLevelDone()
1099 def Verbose( self , verbose ):
1100 preverbose = self.G.Verbose
1101 self.G.Verbose = verbose
1104 nodes = self.G.Nodes()
1105 return self.nodesTuple( nodes )
1106 def nodesTuple( self , nodes ) :
1107 n = len( nodes.CNodes )
1112 pynodes.append( CNode( nodes.CNodes[i] , self.G.Verbose ) )
1115 n = len( nodes.FNodes )
1118 pynodes.append( FNode( nodes.FNodes[i] , self.G.Verbose ) )
1121 n = len( nodes.INodes )
1124 pynodes.append( INode( nodes.INodes[i] , self.G.Verbose ) )
1127 n = len( nodes.GNodes )
1130 pynodes.append( GNode( nodes.GNodes[i] , self.G.Verbose ) )
1133 n = len( nodes.LNodes )
1136 pynodes.append( LNode( nodes.LNodes[i] , self.G.Verbose ) )
1139 n = len( nodes.ELNodes )
1142 pynodes.append( GNode( nodes.ELNodes[i] , self.G.Verbose ) )
1145 n = len( nodes.SNodes )
1148 pynodes.append( SNode( nodes.SNodes[i] , self.G.Verbose ) )
1151 n = len( nodes.ESNodes )
1154 pynodes.append( GNode( nodes.ESNodes[i] , self.G.Verbose ) )
1157 n = len( nodes.Graphs )
1160 pynodes.append( MNode( nodes.Graphs[i] , self.G.Verbose ) )
1164 def ListNodes( self , *args ):
1165 nodes = self.Nodes()
1168 listofnodes = nodes[ 0 ].Name()
1170 while i < len( nodes ) :
1171 listofnodes = listofnodes + ',' + nodes[ i ].Name()
1174 if len( args ) == 0 :
1175 aName = self.N.Name()
1178 if len( nodes ) == 1 :
1179 listofnodes = "[" + listofnodes + "] = " + aName + ".Nodes()"
1181 listofnodes = listofnodes + " = " + aName + ".Nodes()"
1183 def PrintNodes( self ):
1184 nodes = self.Nodes()
1191 def PrintThreads( self ):
1192 nodes = self.Nodes()
1194 while i < len( nodes ) :
1195 print nodes[i].Name(),nodes[i].Thread(),nodes[i].State(),nodes[i].Control(),nodes[i]
1198 links = self.G.GLinks()
1200 linkslen = len( links )
1201 #print 'GLinks ',linkslen,'Links'
1202 while i < linkslen :
1203 links[ i ] = Link( links[i] , self.G.Verbose )
1205 def GStreamLinks( self ):
1206 streamlinks = self.G.GStreamLinks()
1208 #print 'GStreamLinks ',len( streamlinks ),'StreamLinks'
1209 while i < len( streamlinks ) :
1210 streamlinks[ i ] = StreamLink( streamlinks[i] , self.G.Verbose )
1213 def GAllLinks( self ) :
1214 alllinks = self.G.GLinks()
1215 lenlinks = len( alllinks )
1217 while i < lenlinks :
1218 alllinks[ i ] = Link( alllinks[i] , self.N.Verbose )
1220 links = self.G.StreamLinks()
1222 while j < len(links) :
1223 alllinks.append( StreamLink( links[j] , self.N.Verbose ) )
1227 def ListLinks( self , *args ):
1228 links = self.GAllLinks()
1230 listoflinks = 'L' + links[ 0 ].OutPort().Node().Name()
1231 listoflinks = listoflinks + links[ 0 ].OutPort().Name()
1232 listoflinks = listoflinks + links[ 0 ].InPort().Node().Name()
1233 listoflinks = listoflinks + links[ 0 ].InPort().Name()
1235 while i < len( links ) :
1236 listoflinks = listoflinks + ',' + 'L' + links[ i ].OutPort().Node().Name()
1237 listoflinks = listoflinks + links[ i ].OutPort().Name()
1238 listoflinks = listoflinks + links[ i ].InPort().Node().Name()
1239 listoflinks = listoflinks + links[ i ].InPort().Name()
1242 if len( args ) == 0 :
1243 aName = self.N.Name()
1246 if len( links ) == 1 :
1247 listoflinks = "[" + listoflinks + "] = " + aName + ".GAllLinks()"
1249 listoflinks = listoflinks + " = " + aName + ".GAllLinks()"
1251 def PrintLinks( self ):
1252 links = self.GAllLinks()
1254 while i < len( links ) :
1257 def SubGraphsNodes( self , ):
1258 graphs = self.G.SubGraphsNodes()
1261 while i < len( graphs ) :
1262 outgraphs[ i ] = Graph( graphs[i].Name() , self.G.Verbose )
1263 outgraphs[ i ].Merge( graphs[i] )
1267 aCopy = self.G.Copy()
1269 myCopy = Graph( aCopy )
1271 ErrMsg = "Failed to get a Copy of " + self.G.Name()
1275 def ToStreamGraph( self ):
1276 aGraph = self.G.ToStreamGraph()
1278 return StreamGraph( aGraph )
1280 def SubGraphsNodes( self , aSubGraphsNumber ):
1281 nodes = self.G.SubGraphsNodes( aSubGraphsNumber )
1282 return self.nodesTuple( nodes )
1283 def Merge( self , aGraph ):
1284 return self.G.Merge( aGraph.G )
1285 def Destroy( self ):
1288 ##########################################################
1289 class GraphE(Graph):
1290 ##########################################################
1291 def __init__( self , aName ):
1293 graph = SuperVision.GraphE( aName )
1296 graph = aName.G.Copy()
1300 if graph.IsStreamGraph() :
1301 aGraph = graph.ToStreamGraph()
1303 graph = StreamGraphE( aGraph )
1305 print "Graph creation failed"
1311 print "Graph creation failed"
1312 def ToStreamGraph( self ):
1313 aGraph = self.G.ToStreamGraph()
1315 return StreamGraphE( aGraph )
1318 ##########################################################
1320 ##########################################################
1321 def __init__( self , aMNode , Verbose ):
1323 self.G.Verbose = Verbose
1325 self.N.Verbose = Verbose
1327 ##########################################################
1328 class StreamGraph(Graph):
1329 ##########################################################
1330 def __init__( self , aName ):
1332 graph = SuperVision.StreamGraph( aName )
1335 graph = aName.G.StreamCopy()
1344 print "StreamGraph creation failed"
1345 def StreamCopy( self ):
1346 aCopy = self.G.StreamCopy()
1348 myCopy = StreamGraph( aCopy )
1350 ErrMsg = "Failed to get a Copy of " + self.G.Name()
1354 def StreamLink( self , anOutStreamPort , anInStreamPort ) :
1355 aStreamLink = self.G.StreamLink( anOutStreamPort.P , anInStreamPort.P )
1356 if aStreamLink!= None:
1357 myStreamLink = StreamLink( aStreamLink , self.G.Verbose )
1359 ErrMsg = "Failed to make a StreamLink in " + self.G.Name()
1363 def SetStreamParams( self , Timeout , DataStreamTrace , DeltaTime ):
1364 return self.G.SetStreamParams( Timeout , DataStreamTrace , DeltaTime )
1365 def StreamParams( self ):
1366 Timeout,DataStreamTrace,DeltaTime = self.G.StreamParams()
1367 return Timeout,DataStreamTrace,DeltaTime
1368 def ToFlowGraph( self ):
1369 return self.G.ToFlowGraph()
1370 def SubStreamGraphsNumber( self ):
1371 return self.G.SubStreamGraphsNumber()
1372 def SubStreamGraphsNodes( self , aSubStreamGraphsNumber ):
1373 nodes = self.G.SubStreamGraphsNodes( aSubStreamGraphsNumber )
1374 return self.nodesTuple( nodes )
1375 def StreamMerge( self , aStreamGraph ):
1376 return self.G.StreamMerge( aStreamGraph.G )
1378 ##########################################################
1379 class StreamGraphE(StreamGraph):
1380 ##########################################################
1381 def __init__( self , aName ):
1382 graph = SuperVision.StreamGraphE( aName )
1388 ##########################################################
1390 ##########################################################
1391 def __init__( self , aValue , Verbose ):
1393 self.V.Verbose = Verbose
1394 def ToString( self ):
1395 return self.V.ToString()
1397 return self.V.ToAny()
1398 def Destroy( self ):
1401 ##########################################################
1403 ##########################################################
1404 def __init__( self , aPort , Verbose ):
1406 self.P.Verbose = Verbose
1407 def Input( self , *args ):
1408 types, realargs = getRealArgs(self.P,args)
1409 fn = bs_AddInput_valuedict[types]
1410 anInput = apply( fn, realargs)
1413 aNode = self.P.Node()
1415 if aNode.IsComputing() :
1416 myNode = CNode( aNode , self.P.Verbose )
1417 elif aNode.IsFactory() :
1418 myNode = FNode( aNode , self.P.Verbose )
1419 elif aNode.IsInLine() :
1420 myNode = INode( aNode , self.P.Verbose )
1421 elif aNode.IsGOTO() :
1422 myNode = GNode( aNode , self.P.Verbose )
1423 elif aNode.IsLoop() :
1424 myNode = LNode( aNode , self.P.Verbose )
1425 elif aNode.IsEndLoop() :
1426 myNode = ELNode( aNode , self.P.Verbose )
1427 elif aNode.IsSwitch() :
1428 myNode = SNode( aNode , self.P.Verbose )
1429 elif aNode.IsEndSwitch() :
1430 myNode = ESNode( aNode , self.P.Verbose )
1436 return self.P.Name()
1438 return self.P.Type()
1440 aLink = self.P.Link()
1442 myLink = Link( aLink , self.P.Verbose )
1444 ErrMsg = "Failed to get a Link to " + self.P.Node().Name() + "(" + self.P.Name() + ")"
1449 links = self.P.Links()
1451 while i < len( links ) :
1452 links[ i ] = Link( links[i] , self.P.Verbose )
1455 def PrintLinks( self ):
1456 links = self.P.Links()
1458 while i < len( links ) :
1459 Link( links[ i ] , self.P.Verbose ).Print()
1461 def IsInput( self ):
1462 return self.P.IsInput()
1463 def IsLinked( self ):
1464 return self.P.IsLinked()
1465 def HasInput( self ):
1466 return self.P.HasInput()
1468 return self.P.Kind()
1469 def IsParam( self ):
1470 return self.P.IsParam()
1472 return self.P.IsGate()
1474 return self.P.IsLoop()
1475 def IsInLine( self ):
1476 return self.P.IsInLine()
1477 def IsSwitch( self ):
1478 return self.P.IsSwitch()
1479 def IsEndSwitch( self ):
1480 return self.P.IsEndSwitch()
1481 def IsDataStream( self ):
1482 return self.P.IsDataStream()
1483 # def IsBus( self ):
1484 # return self.P.IsBus()
1486 return self.P.Done()
1488 return self.P.State()
1489 def ToString( self ):
1490 return self.P.ToString()
1492 return self.P.ToAny()
1494 if self.P.IsInput() :
1495 if self.P.IsLinked() :
1496 print "In",self.P.Node().Name(),'(',self.P.Name(),self.P.Kind(),self.P.Type(),') = ',self.P.ToString(),' from ',self.Link().OutPort().Print()
1498 print "In",self.P.Node().Name(),'(',self.P.Name(),self.P.Kind(),self.P.Type(),') = ',self.P.ToString()
1500 print "Out",self.P.Node().Name(),'(',self.P.Name(),self.P.Kind(),self.P.Type(),') = ',self.P.ToString()
1501 def Destroy( self ):
1504 ##########################################################
1505 class StreamPort(Port):
1506 ##########################################################
1507 def __init__( self , aPort , Verbose ):
1509 self.P.Verbose = Verbose
1510 def StreamLink( self ) :
1511 return self.P.StreamLink()
1512 def Dependency( self ) :
1513 return self.P.Dependency()
1514 def SetDependency( self , aDependency ) :
1515 return self.P.SetDependency( aDependency )
1516 def Params( self ) :
1517 sts,aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation = self.P.Params()
1518 return sts,aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation
1519 def SetParams( self , aKindOfSchema , aKindOfInterpolation , aKindOfExtrapolation ) :
1520 return self.P.SetParams( aKindOfSchema , aKindOfInterpolation , aKindOfExtrapolation )
1521 def NumberOfValues( self ) :
1522 return self.P.NumberOfValues()
1523 def SetNumberOfValues( self , aNumberOfValues ) :
1524 return self.P.SetNumberOfValues( aNumberOfValues )
1526 ##########################################################
1528 ##########################################################
1529 def __init__( self , aLink , Verbose ):
1531 self.L.Verbose = Verbose
1532 def OutPort( self ):
1533 aPort = self.L.OutPort()
1535 myPort = Port( aPort , self.L.Verbose )
1538 print "Error while getting the Port : "
1541 aPort = self.L.InPort()
1543 myPort = Port( aPort , self.L.Verbose )
1546 print "Error while getting the Port : "
1549 anOutPort = self.L.OutPort()
1550 anOutPortName = anOutPort.Name()
1551 anOutPortKind = anOutPort.Kind()
1552 anOutPortValue = anOutPort.ToString()
1553 anOutNode = anOutPort.Node()
1554 anOutNodeName = anOutNode.Name()
1555 anInPort = self.L.InPort()
1556 anInPortName = anInPort.Name()
1557 anInPortKind = anInPort.Kind()
1558 anInNode = anInPort.Node()
1559 anInNodeName = anInNode.Name()
1560 print anOutNodeName,'(',anOutPortName,' ',anOutPortKind,') =',anOutPortValue,' --> ',anInNodeName,'(',anInPortName,')',' ',anInPortKind
1561 def CoordsSize( self ):
1562 return self.L.CoordsSize()
1563 def AddCoord( self , index , X , Y ):
1564 return self.L.AddCoord( index , X , Y )
1565 def ChangeCoord( self , index , X , Y ):
1566 return self.L.ChangeCoord( index , X , Y )
1567 def RemoveCoord( self , index ):
1568 return self.L.RemoveCoord( index )
1569 def Coords( self , index ):
1570 return self.L.Coords( index )
1571 def destroy( self ):
1573 def IsEqual( self, OtherLink ):
1574 return self.L.IsEqual( OtherLink.L )
1576 ##########################################################
1577 class StreamLink(Link):
1578 ##########################################################
1579 def __init__( self , aLink , Verbose ):
1581 self.L.Verbose = Verbose
1582 def OutStreamPort( self ):
1583 aPort = self.L.OutStreamPort()
1585 myPort = StreamPort( aPort , self.L.Verbose )
1588 print "Error while getting the Port : "
1590 def InStreamPort( self ):
1591 aPort = self.L.InStreamPort()
1593 myPort = StreamPort( aPort , self.L.Verbose )
1596 print "Error while getting the Port : "