3 # SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
5 # Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
6 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
8 # This library is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU Lesser General Public
10 # License as published by the Free Software Foundation; either
11 # version 2.1 of the License.
13 # This library is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 # Lesser General Public License for more details.
18 # You should have received a copy of the GNU Lesser General Public
19 # License along with this library; if not, write to the Free Software
20 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
25 # File : batchmode_SuperV.py
29 from batchmode_salome import orb
30 from batchmode_salome import lcc
31 from batchmode_salome import naming_service
32 from batchmode_salome import CORBA
33 from batchmode_salome import myStudy
34 import SALOME_ModuleCatalog
39 from LifeCycleCORBA import *
40 from SALOME_NamingServicePy import *
43 import SALOME_ModuleCatalog
44 from batchmode_salome import *
46 # from libSuperVision_Swig import SuperV_Swig
47 # print 'SuperV_Swig imported'
50 orb = CORBA.ORB_init([''], CORBA.ORB_ID)
51 #lcc = LifeCycleCORBA(orb)
52 while lcc._catalog == None:
53 lcc = LifeCycleCORBA(orb)
54 naming_service = SALOME_NamingServicePy_i(orb)
60 import SALOMEDS_Attributes_idl
62 # SuperVision = SuperV_Swig( len(sys.argv) , sys.argv )
63 # SuperVision.Swig = 1
64 # print 'SuperV_Swig created'
66 # SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
67 # SuperVision.Swig = 0
68 # print 'Supervision Component loaded'
70 SuperVision = lcc.FindOrLoadComponent("SuperVisionContainer","SUPERV")
74 while modulecatalog == None:
75 modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")
77 myBuilder = myStudy.NewBuilder()
78 father = myStudy.FindComponent("SUPERV")
80 father = myBuilder.NewComponent("SUPERV")
81 A1 = myBuilder.FindOrCreateAttribute(father, "AttributeName");
82 FName = A1._narrow(SALOMEDS.AttributeName)
83 #FName.SetValue("Supervision")
84 Comp = modulecatalog.GetComponent( "SUPERV" )
85 FName.SetValue(Comp._get_componentusername())
86 A2 = myBuilder.FindOrCreateAttribute(father, "AttributePixMap");
87 aPixmap = A2._narrow(SALOMEDS.AttributePixMap);
88 aPixmap.SetPixMap( "ICON_OBJBROWSER_Supervision" );
89 myBuilder.DefineComponentInstance(father,SuperVision)
92 def PortInputFloat(obj, x):
93 return obj.Input( SuperVision.AnyValue( CORBA.Any(CORBA.TC_double, x)))
95 def PortInputLong(obj, x):
96 return obj.Input( SuperVision.AnyValue( CORBA.Any(CORBA.TC_long, x)))
98 def PortInputObject(obj, x):
100 return obj.Input( SuperVision.AnyValue( CORBA.Any(CORBA.TC_Object, x)))
102 return obj.Input( SuperVision.AnyValue( x ) )
104 def PortInputString(obj, x):
105 return obj.Input( SuperVision.AnyValue( CORBA.Any(CORBA.TC_string, x)))
107 def InputFloat(obj, nodein_port, x):
108 return obj.Input(nodein_port, SuperVision.AnyValue( CORBA.Any(CORBA.TC_double, x)))
110 def InputLong(obj, nodein_port, x):
111 return obj.Input(nodein_port, SuperVision.AnyValue( CORBA.Any(CORBA.TC_long, x)))
113 def InputObject(obj, nodein_port, x):
115 return obj.Input(nodein_port, SuperVision.AnyValue( CORBA.Any(CORBA.TC_Object, x)))
117 return obj.Input(nodein_port, SuperVision.AnyValue( x ) )
119 def InputString(obj, nodein_port, x):
120 return obj.Input(nodein_port, SuperVision.AnyValue( CORBA.Any(CORBA.TC_string, x)))
124 dataflow = SuperVision.getGraph(ior)
126 itr = myStudy.NewChildIterator(father)
129 res,A=item.FindAttribute("AttributeName")
131 aName = A._narrow(SALOMEDS.AttributeName)
132 if aName.Value() == name :
133 res, A = myBuilder.FindOrCreateAttribute(item, "AttributeIOR")
134 anIOR = A._narrow(SALOMEDS.AttributeIOR);
135 anIOR.SetValue(dataflow.getIOR())
138 obj = myBuilder.NewObject(father)
139 A=myBuilder.FindOrCreateAttribute(obj, "AttributeName")
140 aName=A._narrow(SALOMEDS.AttributeName)
142 A=myBuilder.FindOrCreateAttribute(obj, "AttributeIOR")
143 anIOR = A._narrow(SALOMEDS.AttributeIOR)
144 anIOR.SetValue(dataflow.getIOR())
146 typestring = re.compile(r"_[^_]+_([^_]+)_.*")
148 def getRealArgs(self,args):
154 types.append(typestring.match(self).group(1))
157 types.append(type(self))
158 realargs.append(self)
162 types.append(typestring.match(a).group(1))
165 types.append(type(a))
168 return tuple(types), tuple(realargs)
170 bs_AddInput_valuedict = {
171 (InstanceType, FloatType) : PortInputFloat,
172 (InstanceType, IntType) : PortInputLong,
173 (InstanceType, StringType) : PortInputString,
174 (InstanceType, InstanceType) : PortInputObject,
175 (InstanceType, StringType, FloatType) : InputFloat,
176 (InstanceType, StringType, IntType) : InputLong,
177 (InstanceType, StringType, StringType) : InputString,
178 (InstanceType, StringType, InstanceType) : InputObject,
179 (InstanceType, StringType, ListType) : InputObject,
183 def Args( aService , aNodeName , verbose ):
184 lenin = len( aService.ServiceinParameter )
185 infos = aNodeName + 'info = "'
186 infos = infos + 'NodeName : ' + aNodeName + '\\n'
187 infos = infos + 'ServiceName : ' + aService.ServiceName + '\\n'
188 infos = infos + 'PortNames : \\n'
189 defnames = aNodeName + " = " + "'" + aNodeName + "' ; "
192 argname = aNodeName + aService.ServiceinParameter[ i ].Parametername
193 valname = aNodeName + "\\\\"
194 valname = valname + aService.ServiceinParameter[ i ].Parametername
195 defnames = defnames + argname + " = " + "'" + valname + "' ; "
196 infos = infos + str(i) + '. ' + argname + ' : Input'
197 infos = infos + str(i) + ' '
198 infos = infos + aService.ServiceinParameter[ i ].Parametername + ' '
199 infos = infos + aService.ServiceinParameter[ i ].Parametertype + '\\n'
201 lenout = len( aService.ServiceoutParameter )
204 argname = aNodeName + aService.ServiceoutParameter[ i ].Parametername
205 valname = aNodeName + "\\\\"
206 valname = valname + aService.ServiceoutParameter[ i ].Parametername
207 defnames = defnames + argname + " = " + "'" + valname + "' ; "
208 infos = infos + str(lenin+i) + '. ' + argname + ' : Output'
209 infos = infos + str(i) + ' '
210 infos = infos + aService.ServiceoutParameter[ i ].Parametername + ' '
211 infos = infos + aService.ServiceoutParameter[ i ].Parametertype + '\\n'
214 defnames = defnames + infos
216 defnames = defnames + " ; print " + aNodeName + "info"
219 def Service_Swig( aCatalogService ) :
220 aService = SuperVision.Service()
221 aService.ServiceName = aCatalogService.ServiceName
223 while i < len( aCatalogService.ServiceinParameter ) :
224 p = SuperVision.ServicesParameter( aCatalogService.ServiceinParameter[i].Parametertype , aCatalogService.ServiceinParameter[i].Parametername )
225 SuperVision.AddInParameter( aService , p )
228 while i < len( aCatalogService.ServiceoutParameter ) :
229 p = SuperVision.ServicesParameter( aCatalogService.ServiceoutParameter[i].Parametertype , aCatalogService.ServiceoutParameter[i].Parametername )
230 SuperVision.AddOutParameter( aService , p )
234 ##########################################################
236 ##########################################################
237 def __init__( self , aNode , Verbose ):
239 self.N.Verbose = Verbose
243 return self.N.Service()
246 def CreationDate( self ):
247 return self.N.CreationDate()
248 def LastUpdateDate( self ):
249 return self.N.LastUpdateDate()
251 return self.N.Version()
253 return self.N.Author()
255 return self.N.Comment()
257 def SetName( self , aNewName ):
258 return self.N.SetName( aNewName )
259 def SetAuthor( self , anAuthor ):
260 return self.N.SetAuthor( anAuthor )
261 def SetComment( self , aComment ):
262 return self.N.SetComment( aComment )
265 print "Name ",self.N.Name()
266 if self.N.IsFactory() :
267 print "ComponentName ",self.N.GetComponentName()
268 print "InterfaceName ",self.N.GetInterfaceName()
269 if self.N.IsStreamGraph() :
270 Timeout,DataStreamTrace,DeltaTime = self.G.StreamParams()
271 print "Timeout",Timeout
272 print "DataStreamTrace",DataStreamTrace
273 print "DeltaTime",DeltaTime
274 aService = self.N.Service()
275 print "Service Name ",aService.ServiceName
276 lenin = len( aService.ServiceinParameter )
277 print " ",lenin," input argument(s) :"
280 print " ",i,". ",aService.ServiceinParameter[ i ].Parametername," ",aService.ServiceinParameter[ i ].Parametertype
282 lenout = len( aService.ServiceoutParameter )
283 print " ",lenout," output argument(s) :"
286 print " ",i,". ",aService.ServiceoutParameter[ i ].Parametername," ",aService.ServiceoutParameter[ i ].Parametertype
288 aKind = self.N.Kind()
289 print "KindOfNode",aKind
290 aFirstCreation = self.N.CreationDate()
291 print "Creation Date ",aFirstCreation.Day,"-",aFirstCreation.Month,"-",aFirstCreation.Year," ",aFirstCreation.Hour,":",aFirstCreation.Minute,":",aFirstCreation.Second
292 aLastModification = self.N.LastUpdateDate()
293 print "Update Date ",aLastModification.Day,"-",aLastModification.Month,"-",aLastModification.Year," ",aLastModification.Hour,":",aLastModification.Minute,":",aLastModification.Second
294 print "Version ",self.N.Version()
295 print "Author ",self.N.Author()
296 if self.N.IsFactory() :
297 print "Container ",self.N.GetContainer()
298 print "Comment ",self.N.Comment()
299 print "Coords ",self.N.X()," ",self.N.Y()
300 def Port( self , aPortName ):
301 aPort = self.N.Port( aPortName )
303 myPort = Port( aPort , self.N.Verbose )
306 print "Error while creating the Port : ",aPortName
308 def Input( self , *args ):
309 types, realargs = getRealArgs(self.N,args)
310 fn = bs_AddInput_valuedict[types]
311 anInput = apply( fn, realargs)
313 myInput = Port( anInput , self.N.Verbose )
315 ErrMsg = "Failed to create the Input"
319 # def BusPort( self , InOutParameterName , InOutParameterType ):
320 # sts,inp,outp = self.N.BusPort( InOutParameterName ,
321 # InOutParameterType )
322 # inp = Port( inp , self.N.Verbose )
323 # outp = Port( outp , self.N.Verbose )
324 # return sts,inp,outp
325 # def BusPorts( self , InputParameterName , InputParameterType ,
326 # OutputParameterName , OutputParameterType ):
327 # sts,inp,outp = self.N.BusPorts( InputParameterName ,
328 # InputParameterType ,
329 # OutputParameterName ,
330 # OutputParameterType )
331 # inp = Port( inp , self.N.Verbose )
332 # outp = Port( outp , self.N.Verbose )
333 # return sts,inp,outp
334 def InStreamPort( self , aParameterName , aParameterType , aDependency ):
335 aPort = self.N.InStreamPort( aParameterName , aParameterType , aDependency )
337 myPort = StreamPort( aPort , self.N.Verbose )
340 print "Error while creating the Port : ",aParameterName
342 def OutStreamPort( self , aParameterName , aParameterType , aDependency ):
343 aPort = self.N.OutStreamPort( aParameterName , aParameterType , aDependency )
345 myPort = StreamPort( aPort , self.N.Verbose )
348 print "Error while creating the Port : ",aParameterName
350 def GetInPort( self , aParameterName ):
351 aPort = self.N.GetInPort( aParameterName )
353 myPort = Port( aPort , self.N.Verbose )
356 print "Error while creating the Port : ",aParameterName
358 def GetOutPort( self , aParameterName ):
359 aPort = self.N.GetOutPort( aParameterName )
361 myPort = Port( aPort , self.N.Verbose )
364 print "Error while creating the Port : ",aParameterName
366 def GetInStreamPort( self , aParameterName ):
367 aPort = self.N.GetInStreamPort( aParameterName )
369 myPort = StreamPort( aPort , self.N.Verbose )
372 print "Error while creating the Port : ",aParameterName
374 def GetOutStreamPort( self , aParameterName ):
375 aPort = self.N.GetOutStreamPort( aParameterName )
377 myPort = StreamPort( aPort , self.N.Verbose )
380 print "Error while creating the Port : ",aParameterName
383 ports = self.N.Ports()
385 while i < len( ports ) :
386 ports[ i ] = Port( ports[i] , self.N.Verbose )
389 def StreamPorts( self ):
390 ports = self.N.StreamPorts()
392 while i < len( ports ) :
393 ports[ i ] = StreamPort( ports[i] , self.N.Verbose )
396 def AllPorts( self ):
397 allports = self.N.Ports()
398 lenports = len( allports )
401 allports[ i ] = Port( allports[i] , self.N.Verbose )
403 ports = self.N.StreamPorts()
405 while i < len( ports ) :
406 allports.append( StreamPort( ports[i] , self.N.Verbose ) )
409 def ListPorts( self , *args ):
410 if len( args ) == 0 :
411 aName = self.N.Name()
414 ports = self.AllPorts()
418 portsname = ports[ 0 ].Name()
419 bs = portsname.find('\\')
421 portsname1,portsname2 = portsname.split('\\')
422 portsname = portsname1 + portsname2
423 if ports[ 0 ].IsInput():
424 listofports = 'I' + aName + portsname
426 listofports = 'O' + aName + portsname
428 while i < len( ports ) :
429 portsname = ports[ i ].Name()
430 bs = portsname.find('\\')
432 portsname1,portsname2 = portsname.split('\\')
433 portsname = portsname1 + portsname2
434 if ports[ i ].IsInput():
435 listofports = listofports + ',' + 'I' + aName + portsname
437 listofports = listofports + ',' + 'O' + aName + portsname
440 if len( ports ) == 1 :
441 listofports = "[" + listofports + "] = " + aName + ".AllPorts()"
443 listofports = listofports + " = " + aName + ".AllPorts()"
445 def PrintPorts( self ):
446 ports = self.AllPorts()
448 while i < len( ports ) :
450 if ports[ i ].IsInput() :
452 if ( ports[ i ].IsDataStream() ) & ( self.N.IsStreamGraph() == 0 ) :
453 if ports[ i ].IsInput() :
454 sts,aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation = ports[ i ].Params()
455 print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString(),ports[ i ].Dependency(),aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation
457 numberofvalues = ports[ i ].NumberOfValues()
458 print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString(),ports[ i ].Dependency(),'NumberOfValues',numberofvalues
460 print Direction,self.N.Name(),'(',ports[ i ].Name(),ports[ i ].Kind(),ports[ i ].Type(),') = ',ports[ i ].ToString()
463 links = self.N.Links()
465 while i < len( links ) :
466 links[ i ] = Link( links[i] , self.N.Verbose )
469 def StreamLinks( self ) :
470 links = self.N.StreamLinks()
472 while i < len( links ) :
473 links[ i ] = StreamLink( links[i] , self.N.Verbose )
476 def AllLinks( self ) :
477 alllinks = self.N.Links()
478 lenlinks = len( alllinks )
481 alllinks[ i ] = Link( alllinks[i] , self.N.Verbose )
483 links = self.N.StreamLinks()
485 while i < len( links ) :
486 alllinks.append( StreamLink( links[i] , self.N.Verbose ) )
489 def ListLinks( self , *args ):
490 links = self.AllLinks()
492 listoflinks = 'L' + links[ 0 ].OutPort().Node().Name()
493 listoflinks = listoflinks + links[ 0 ].OutPort().Name()
494 listoflinks = listoflinks + links[ 0 ].InPort().Node().Name()
495 listoflinks = listoflinks + links[ 0 ].InPort().Name()
497 while i < len( links ) :
498 listoflinks = listoflinks + ',' + 'L' + links[ i ].OutPort().Node().Name()
499 listoflinks = listoflinks + links[ i ].OutPort().Name()
500 listoflinks = listoflinks + links[ i ].InPort().Node().Name()
501 listoflinks = listoflinks + links[ i ].InPort().Name()
504 if len( args ) == 0 :
505 aName = self.N.Name()
508 if len( links ) == 1 :
509 listoflinks = "[" + listoflinks + "] = " + aName + ".AllLinks()"
511 listoflinks = listoflinks + " = " + aName + ".AllLinks()"
513 def PrintLinks( self ):
514 links = self.AllLinks()
516 while i < len( links ) :
519 def IsStreamGraph( self ):
520 return self.N.IsStreamGraph()
522 return self.N.IsGraph()
524 return self.N.IsMacro()
525 def IsFlowMacro( self ):
526 return self.N.IsFlowMacro()
527 def IsStreamMacro( self ):
528 return self.N.IsStreamMacro()
529 def IsComputing( self ):
530 return self.N.IsComputing()
531 def IsFactory( self ):
532 return self.N.IsFactory()
533 def IsInLine( self ):
534 return self.N.IsInLine()
536 return self.N.IsGOTO()
538 return self.N.IsLoop()
539 def IsEndLoop( self ):
540 return self.N.IsEndLoop()
541 def IsSwitch( self ):
542 return self.N.IsSwitch()
543 def IsEndSwitch( self ):
544 return self.N.IsEndSwitch()
545 def GraphLevel( self ) :
546 return self.N.GraphLevel()
547 def SubGraph( self ):
548 return self.N.SubGraph()
549 def SubStreamGraph( self ):
550 return self.N.SubStreamGraph()
552 return self.N.Thread()
553 def IsWaiting( self ):
554 return self.N.IsWaiting()
555 def IsRunning( self ):
556 return self.N.IsRunning()
558 return self.N.IsDone()
559 def IsSuspended( self ):
560 return self.N.IsSuspended()
562 return self.N.State()
564 return self.N.Control()
565 def ControlClear( self ):
566 return self.N.ControlClear()
568 return self.N.ReadyW()
569 def RunningW( self ):
570 return self.N.RunningW()
572 return self.N.DoneW()
573 def SuspendedW( self ):
574 return self.N.SuspendedW()
576 # return self.N.ReRun()
577 #def ReStart( self ):
578 # return self.N.ReStart()
579 #def ReRunAt( self , aNodeName ):
580 # return self.N.ReRunAt( aNodeName )
581 #def ReStartAt( self , aNodeName ):
582 # return self.N.ReStartAt( aNodeName )
587 def KillDone( self ):
588 return self.N.KillDone()
590 return self.N.Suspend()
591 def SuspendDone( self ):
592 return self.N.SuspendDone()
594 return self.N.Resume()
597 def Coords( self , X , Y ):
598 return self.N.Coords( X , Y )
606 return self.N.CpuUsed()
608 ##########################################################
610 ##########################################################
611 def __init__( self , aNode , Verbose ):
613 self.N.Verbose = Verbose
614 def GetComponentName( self ):
615 return self.N.GetComponentName()
616 def GetInterfaceName( self ):
617 return self.N._get_interfaceName()
618 def GetContainer( self ):
619 return self.N.GetContainer()
620 def SetComponentName( self , aComponentName ):
621 return self.N.SetComponentName( aComponentName )
622 def SetInterfaceName( self , anInterfaceName ):
623 return self.N.SetInterfaceName( anInterfaceName )
624 def SetContainer( self , aComputer ):
625 return self.N.SetContainer( aComputer )
627 return self.N.isCimpl
629 ##########################################################
631 ##########################################################
632 def __init__( self , aNode , Verbose ):
634 self.N.Verbose = Verbose
635 def Edit( self , FuncName , PyFunc ) :
638 suf = str(random.randrange(1,10000))
639 file = '/tmp/' + FuncName + '_' + suf + '.py'
643 fd = os.open( file , os.O_CREAT | os.O_WRONLY | os.O_TRUNC )
647 while ( i < len( PyFunc ) ) :
648 print i,'/',len( PyFunc ),PyFunc[ i ]
649 os.write( fd , PyFunc[ i ] + '\n' )
652 edit = '${EDITOR} ' + file
654 fd = os.open( file , os.O_RDONLY )
655 line = os.read( fd , 132 )
659 line = os.read( fd , 132 )
661 PyFunc = res.splitlines()
663 while i < len( PyFunc ) :
667 print "Open of",file,"failed."
669 def SetPyFunction( self , FuncName , aPyFunction ):
670 return self.N.SetPyFunction( FuncName , aPyFunction )
671 def PyFunction( self ):
672 return self.N.PyFunction()
673 def PyFuncName( self ):
674 return self.N.PyFuncName()
675 def InPort( self , aParameterName , aParameterType ):
676 aPort = self.N.InPort( aParameterName ,
679 myPort = Port( aPort , self.N.Verbose )
682 print "Error while creating the Port : ",aParameterName
684 def OutPort( self , aParameterName , aParameterType ):
685 aPort = self.N.OutPort( aParameterName ,
688 myPort = Port( aPort , self.N.Verbose )
691 print "Error while creating the Port : ",aParameterName
694 PyFunc = self.N.PyFunction()
695 PyFunc = self.Edit( self.N.PyFuncName() , PyFunc )
696 self.N.SetPyFunction( self.N.PyFuncName() , PyFunc )
698 ##########################################################
700 ##########################################################
701 def __init__( self , aNode , Verbose ):
703 self.N.Verbose = Verbose
704 def SetCoupled( self , anInLineNode ):
706 node = self.N.SetCoupled( anInLineNode )
711 node = self.N.Coupled()
714 node = INode( node , self.N.Verbose )
716 node = LNode( node , self.N.Verbose )
717 elif node.IsEndLoop() :
718 node = ELNode( node , self.N.Verbose )
719 elif node.IsSwitch() :
720 node = SNode( node , self.N.Verbose )
721 elif node.IsEndSwitch() :
722 node = ESNode( node , self.N.Verbose )
725 ##########################################################
727 ##########################################################
728 def __init__( self , aNode , Verbose ):
730 self.N.Verbose = Verbose
731 def SetPyInit( self , InitName , aPyFunction ):
732 return self.N.SetPyInit( InitName , aPyFunction )
734 return self.N.PyInit()
735 def PyInitName( self ) :
736 return self.N.PyInitName()
738 PyFunc = self.N.PyFunction()
739 PyFunc = self.Edit( self.N.PyFuncName() , PyFunc )
740 self.N.SetPyFunction( self.N.PyFuncName() , PyFunc )
741 def SetPyMore( self , MoreName , aPyFunction ):
742 return self.N.SetPyMore( MoreName , aPyFunction )
744 return self.N.PyMore()
745 def PyMoreName( self ) :
746 return self.N.PyMoreName()
748 PyMore = self.N.PyMore()
749 PyMore = self.Edit( self.N.PyMoreName() , PyMore )
750 self.N.SetPyMore( self.N.PyMoreName() , PyMore )
751 def SetPyNext( self , NextName , aPyFunction ):
752 return self.N.SetPyNext( NextName , aPyFunction )
754 return self.N.PyNext()
755 def PyNextName( self ) :
756 return self.N.PyNextName()
758 PyNext = self.N.PyNext()
759 PyNext = self.Edit( self.N.PyNextName() , PyNext )
760 self.N.SetPyNext( self.N.PyNextName() , PyNext )
762 ##########################################################
764 ##########################################################
765 def __init__( self , aNode , Verbose ):
767 self.N.Verbose = Verbose
769 ##########################################################
771 ##########################################################
772 def __init__( self , aNode , Verbose ):
774 self.N.Verbose = Verbose
776 ##########################################################
778 ##########################################################
779 def __init__( self , aNode , Verbose ):
781 self.N.Verbose = Verbose
783 ##########################################################
784 #class ServicesParameter_Swig :
785 ##########################################################
786 # def __init__( self , aServicesParameter ):
787 # self.Parametertype = aServicesParameter.Parametertype
788 # self.Parametername = aServicesParameter.Parametername
790 ##########################################################
792 ##########################################################
793 def __init__( self , aName ):
795 graph = SuperVision.Graph( aName )
798 graph = aName.G.Copy()
802 if graph.IsStreamGraph() :
803 aGraph = graph.ToStreamGraph()
805 graph = StreamGraph( aGraph )
807 print "Graph creation failed"
813 print "Graph creation failed"
814 def CNode( self , *args ):
815 if len( args ) == 1 :
818 aComponent = args[ 0 ]
819 anInterface = args[ 1 ]
821 NodeComponent = modulecatalog.GetComponent( aComponent )
822 aService = NodeComponent.GetService( anInterface , aService )
823 aNode = self.G.CNode( aService )
825 myNode = CNode( aNode , self.G.Verbose )
827 ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
831 def Node( self , aComponent , anInterface , aService ):
832 #if SuperVision.Swig :
833 #aService = Service_Swig( aService )
834 return self.FNode( aComponent , anInterface , aService )
835 def FNodeImpl( self , aComponent , anInterface , aService, isCimpl ):
836 NodeComponent = modulecatalog.GetComponent( aComponent )
837 aService = NodeComponent.GetService( anInterface , aService )
838 aNode = self.G.FNode( aComponent , anInterface , aService, isCimpl )
840 aNode.isCimpl = isCimpl
841 myNode = FNode( aNode , self.G.Verbose )
843 ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
847 def FNode( self , aComponent , anInterface , aService ):
848 # create node with C++ implementation type by default
849 NodeComponent = modulecatalog.GetComponent( aComponent )
850 aService = NodeComponent.GetService( anInterface , aService )
851 #if SuperVision.Swig :
852 #aService = Service_Swig( aService )
853 aNode = self.G.FNode( aComponent , anInterface , aService, SALOME_ModuleCatalog.SO )
856 myNode = FNode( aNode , self.G.Verbose )
858 ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
862 def INode( self , FuncName , aPythonFunction ):
863 aNode = self.G.INode( FuncName , aPythonFunction )
865 myNode = INode( aNode , self.G.Verbose )
867 ErrMsg = "Failed to create a Node"
871 def GNode( self , FuncName , aPythonFunction , anINode ):
872 aNode = self.G.GNode( FuncName , aPythonFunction , anINode )
874 myNode = GNode( aNode , self.G.Verbose )
876 ErrMsg = "Failed to create a Node"
880 def LNode( self , InitName , InitFunction , MoreName , MoreFunction , NextName , NextFunction ):
881 aNode,anEndOfLoop = self.G.LNode( InitName , InitFunction , MoreName , MoreFunction , NextName , NextFunction )
883 myNode = LNode( aNode , self.G.Verbose )
884 myEndOfLoop = INode( anEndOfLoop , self.G.Verbose )
885 return myNode,myEndOfLoop
886 ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
890 def SNode( self , FuncName , aPythonFunction ):
891 aNode,anEndOfSwitch = self.G.SNode( FuncName , aPythonFunction )
893 myNode = SNode( aNode , self.G.Verbose )
894 myEndOfSwitch = INode( anEndOfSwitch , self.G.Verbose )
895 return myNode,myEndOfSwitch
896 ErrMsg = "Failed to create a Node"
900 # def LoopNode( self , aComponent , anInterface , aService , aNodeName ):
901 # NodeComponent = modulecatalog.GetComponent( aComponent )
902 # aService = NodeComponent.GetService( anInterface , aService )
903 # aNode,anEndNode = self.G.LoopNode( aComponent , anInterface , aService , aNodeName )
905 # myEndNode = anEndNode
907 # myNode = Node( aNode , self.G.Verbose )
908 # if anEndNode != None :
909 # myEndNode = Node( anEndNode , self.G.Verbose )
910 # if ( aNode != None ) & ( anEndNode != None ) :
911 # return myNode,myEndNode
912 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
913 # if self.G.Verbose :
915 # return aNode,anEndNode
916 # def SwitchNode( self , aComponent , anInterface , aService , aNodeName ):
917 # NodeComponent = modulecatalog.GetComponent( aComponent )
918 # aService = NodeComponent.GetService( anInterface , aService )
919 # aNode,anEndNode = self.G.SwitchNode( aComponent , anInterface , aService , aNodeName )
921 # myEndNode = anEndNode
923 # myNode = Node( aNode , self.G.Verbose )
924 # if anEndNode != None :
925 # myEndNode = Node( anEndNode , self.G.Verbose )
926 # if ( aNode != None ) & ( anEndNode != None ) :
927 # return myNode,myEndNode
928 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
929 # if self.G.Verbose :
931 # return aNode,anEndNode
932 # def LNode( self , aNodeName ):
933 # aNode = self.G.LNode( aNodeName )
935 # myNode = Node( aNode , self.G.Verbose )
937 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
938 # if self.G.Verbose :
941 # def LService( self , aComponent , anInterface , aService ):
942 # NodeComponent = modulecatalog.GetComponent( aComponent )
943 # aService = NodeComponent.GetService( anInterface , aService )
944 # aNode = self.G.LService( aComponent , anInterface , aService )
946 # myNode = Node( aNode , self.G.Verbose )
948 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
949 # if self.G.Verbose :
952 # def CNode( self , aNodeName ):
953 # aNode = self.G.CNode( aNodeName )
955 # myNode = Node( aNode , self.G.Verbose )
957 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
958 # if self.G.Verbose :
961 # def CService( self , aComponent , anInterface , aService ):
962 # NodeComponent = modulecatalog.GetComponent( aComponent )
963 # aService = NodeComponent.GetService( anInterface , aService )
964 # aNode = self.G.CService( aComponent , anInterface , aService )
966 # myNode = Node( aNode , self.G.Verbose )
968 # ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
969 # if self.G.Verbose :
972 def MNode( self , aGraphXml ):
973 aMNode = self.G.MNode( aGraphXml )
975 myMNode = MNode( aMNode , self.G.Verbose )
977 ErrMsg = "Failed to create a MNode"
981 def GraphMNode( self , aGraph ):
982 aGraphMNode = self.G.GraphMNode( aGraph.G )
983 if aGraphMNode != None :
984 myMNode = MNode( aGraphMNode , self.G.Verbose )
986 ErrMsg = "Failed to create a MNode"
990 def FlowObjRef( self ) :
991 aGraph = self.G.FlowObjRef()
993 myGraph = Graph( aGraph )
996 def StreamObjRef( self ) :
997 aGraph = self.G.StreamObjRef()
999 myGraph = StreamGraph( aGraph )
1002 def PrintService( self , aComponent , anInterface , aService ):
1003 NodeComponent = modulecatalog.GetComponent( aComponent )
1004 aService = NodeComponent.GetService( anInterface , aService )
1005 print "ServiceName ",aService.ServiceName," :"
1006 lenin = len( aService.ServiceinParameter )
1007 print " ",lenin," input argument(s) :"
1010 print " ",i,". ",aService.ServiceinParameter[ i ].Parametername," ",aService.ServiceinParameter[ i ].Parametertype
1012 lenout = len( aService.ServiceoutParameter )
1013 print " ",lenout," output argument(s) :"
1016 print " ",i,". ",aService.ServiceoutParameter[ i ].Parametername," ",aService.ServiceoutParameter[ i ].Parametertype
1018 def Link( self , aFromNodePort , aToNodePort ):
1019 aLink = self.G.Link( aFromNodePort.P , aToNodePort.P )
1021 myLink = Link( aLink , self.G.Verbose )
1023 ErrMsg = "Failed to create a Link from " + aFromNodePort.Node().Name() + "(" + aFromNodePort.Name() + ") to " + aToNodePort.Node().Name() + "(" + aToNodePort.Name() + ")"
1027 def Messages( self ):
1028 return self.G.Messages()
1029 def Import( self , anXmlFileName ):
1030 return self.G.Import( anXmlFileName )
1031 def Export( self , anXmlFileName ):
1032 return self.G.Export( anXmlFileName )
1033 def IsReadOnly( self ) :
1034 return self.G.IsReadOnly()
1035 def ComponentRef( self , aFactoryServer , aComponent ) :
1036 return self.G.ComponentRef( aFactoryServer , aComponent )
1037 def IsValid( self ):
1038 return self.G.IsValid()
1039 def IsExecutable( self ):
1040 return self.G.IsExecutable()
1041 def IsEditing( self ):
1042 return self.G.IsEditing()
1043 def IsExecuting( self ):
1044 return self.G.IsExecuting()
1045 def LevelMax( self ):
1046 return self.G.LevelMax()
1047 def ThreadsMax( self ):
1048 return self.G.ThreadsMax()
1049 def SubGraphsNumber( self ):
1050 return self.G.SubGraphsNumber()
1051 def LevelNodes( self , aLevel ):
1052 nodes = self.G.LevelNodes( aLevel )
1053 return self.nodesTuple( nodes )
1054 def Run( self , *args ):
1056 aService = self.Service()
1060 print aService.ServiceinParameter[ i ].Parametername," = ",args[i]
1061 self.Input( aService.ServiceinParameter[ i ].Parametername , args[i] )
1065 def Start( self , *args ):
1067 aService = self.Service()
1071 print aService.ServiceinParameter[ i ].Parametername," = ",args[i]
1072 self.Input( aService.ServiceinParameter[ i ].Parametername , args[i] )
1075 return self.G.Start()
1077 sts,aNode,anEvent,aState = self.G.Event()
1079 return sts,aNode,anEvent,aState
1080 def EventNoW( self ):
1081 sts,aNode,anEvent,aState = self.G.EventNoW()
1083 return sts,aNode,anEvent,aState
1085 sts,aNode,anEvent,aState = self.G.EventW()
1087 return sts,aNode,anEvent,aState
1090 sts,aNode,anEvent,aState = self.G.EventW()
1092 print sts,aNode.Thread(),aNode.SubGraph(),aNode.Name(),anEvent,aState
1094 def Threads( self ):
1095 return self.G.Threads()
1096 def SuspendedThreads( self ):
1097 return self.G.SuspendedThreads()
1098 def LastLevelDone( self ):
1099 return self.G.LastLevelDone()
1100 def Verbose( self , verbose ):
1101 preverbose = self.G.Verbose
1102 self.G.Verbose = verbose
1105 nodes = self.G.Nodes()
1106 return self.nodesTuple( nodes )
1107 def nodesTuple( self , nodes ) :
1108 n = len( nodes.CNodes )
1113 pynodes.append( CNode( nodes.CNodes[i] , self.G.Verbose ) )
1116 n = len( nodes.FNodes )
1119 pynodes.append( FNode( nodes.FNodes[i] , self.G.Verbose ) )
1122 n = len( nodes.INodes )
1125 pynodes.append( INode( nodes.INodes[i] , self.G.Verbose ) )
1128 n = len( nodes.GNodes )
1131 pynodes.append( GNode( nodes.GNodes[i] , self.G.Verbose ) )
1134 n = len( nodes.LNodes )
1137 pynodes.append( LNode( nodes.LNodes[i] , self.G.Verbose ) )
1140 n = len( nodes.ELNodes )
1143 pynodes.append( GNode( nodes.ELNodes[i] , self.G.Verbose ) )
1146 n = len( nodes.SNodes )
1149 pynodes.append( SNode( nodes.SNodes[i] , self.G.Verbose ) )
1152 n = len( nodes.ESNodes )
1155 pynodes.append( GNode( nodes.ESNodes[i] , self.G.Verbose ) )
1158 n = len( nodes.Graphs )
1161 pynodes.append( MNode( nodes.Graphs[i] , self.G.Verbose ) )
1165 def ListNodes( self , *args ):
1166 nodes = self.Nodes()
1169 listofnodes = nodes[ 0 ].Name()
1171 while i < len( nodes ) :
1172 listofnodes = listofnodes + ',' + nodes[ i ].Name()
1175 if len( args ) == 0 :
1176 aName = self.N.Name()
1179 if len( nodes ) == 1 :
1180 listofnodes = "[" + listofnodes + "] = " + aName + ".Nodes()"
1182 listofnodes = listofnodes + " = " + aName + ".Nodes()"
1184 def PrintNodes( self ):
1185 nodes = self.Nodes()
1192 def PrintThreads( self ):
1193 nodes = self.Nodes()
1195 while i < len( nodes ) :
1196 print nodes[i].Name(),nodes[i].Thread(),nodes[i].State(),nodes[i].Control(),nodes[i]
1199 links = self.G.GLinks()
1201 linkslen = len( links )
1202 #print 'GLinks ',linkslen,'Links'
1203 while i < linkslen :
1204 links[ i ] = Link( links[i] , self.G.Verbose )
1206 def GStreamLinks( self ):
1207 streamlinks = self.G.GStreamLinks()
1209 #print 'GStreamLinks ',len( streamlinks ),'StreamLinks'
1210 while i < len( streamlinks ) :
1211 streamlinks[ i ] = StreamLink( streamlinks[i] , self.G.Verbose )
1214 def GAllLinks( self ) :
1215 alllinks = self.G.GLinks()
1216 lenlinks = len( alllinks )
1218 while i < lenlinks :
1219 alllinks[ i ] = Link( alllinks[i] , self.N.Verbose )
1221 links = self.G.StreamLinks()
1223 while j < len(links) :
1224 alllinks.append( StreamLink( links[j] , self.N.Verbose ) )
1228 def ListLinks( self , *args ):
1229 links = self.GAllLinks()
1231 listoflinks = 'L' + links[ 0 ].OutPort().Node().Name()
1232 listoflinks = listoflinks + links[ 0 ].OutPort().Name()
1233 listoflinks = listoflinks + links[ 0 ].InPort().Node().Name()
1234 listoflinks = listoflinks + links[ 0 ].InPort().Name()
1236 while i < len( links ) :
1237 listoflinks = listoflinks + ',' + 'L' + links[ i ].OutPort().Node().Name()
1238 listoflinks = listoflinks + links[ i ].OutPort().Name()
1239 listoflinks = listoflinks + links[ i ].InPort().Node().Name()
1240 listoflinks = listoflinks + links[ i ].InPort().Name()
1243 if len( args ) == 0 :
1244 aName = self.N.Name()
1247 if len( links ) == 1 :
1248 listoflinks = "[" + listoflinks + "] = " + aName + ".GAllLinks()"
1250 listoflinks = listoflinks + " = " + aName + ".GAllLinks()"
1252 def PrintLinks( self ):
1253 links = self.GAllLinks()
1255 while i < len( links ) :
1258 def SubGraphsNodes( self , ):
1259 graphs = self.G.SubGraphsNodes()
1262 while i < len( graphs ) :
1263 outgraphs[ i ] = Graph( graphs[i].Name() , self.G.Verbose )
1264 outgraphs[ i ].Merge( graphs[i] )
1268 aCopy = self.G.Copy()
1270 myCopy = Graph( aCopy )
1272 ErrMsg = "Failed to get a Copy of " + self.G.Name()
1276 def ToStreamGraph( self ):
1277 aGraph = self.G.ToStreamGraph()
1279 return StreamGraph( aGraph )
1281 def SubGraphsNodes( self , aSubGraphsNumber ):
1282 nodes = self.G.SubGraphsNodes( aSubGraphsNumber )
1283 return self.nodesTuple( nodes )
1284 def Merge( self , aGraph ):
1285 return self.G.Merge( aGraph.G )
1286 def Destroy( self ):
1289 ##########################################################
1290 class GraphE(Graph):
1291 ##########################################################
1292 def __init__( self , aName ):
1294 graph = SuperVision.GraphE( aName )
1297 graph = aName.G.Copy()
1301 if graph.IsStreamGraph() :
1302 aGraph = graph.ToStreamGraph()
1304 graph = StreamGraphE( aGraph )
1306 print "Graph creation failed"
1312 print "Graph creation failed"
1313 def ToStreamGraph( self ):
1314 aGraph = self.G.ToStreamGraph()
1316 return StreamGraphE( aGraph )
1319 ##########################################################
1321 ##########################################################
1322 def __init__( self , aMNode , Verbose ):
1324 self.G.Verbose = Verbose
1326 self.N.Verbose = Verbose
1328 ##########################################################
1329 class StreamGraph(Graph):
1330 ##########################################################
1331 def __init__( self , aName ):
1333 graph = SuperVision.StreamGraph( aName )
1336 graph = aName.G.StreamCopy()
1345 print "StreamGraph creation failed"
1346 def StreamCopy( self ):
1347 aCopy = self.G.StreamCopy()
1349 myCopy = StreamGraph( aCopy )
1351 ErrMsg = "Failed to get a Copy of " + self.G.Name()
1355 def StreamLink( self , anOutStreamPort , anInStreamPort ) :
1356 aStreamLink = self.G.StreamLink( anOutStreamPort.P , anInStreamPort.P )
1357 if aStreamLink!= None:
1358 myStreamLink = StreamLink( aStreamLink , self.G.Verbose )
1360 ErrMsg = "Failed to make a StreamLink in " + self.G.Name()
1364 def SetStreamParams( self , Timeout , DataStreamTrace , DeltaTime ):
1365 return self.G.SetStreamParams( Timeout , DataStreamTrace , DeltaTime )
1366 def StreamParams( self ):
1367 Timeout,DataStreamTrace,DeltaTime = self.G.StreamParams()
1368 return Timeout,DataStreamTrace,DeltaTime
1369 def ToFlowGraph( self ):
1370 return self.G.ToFlowGraph()
1371 def SubStreamGraphsNumber( self ):
1372 return self.G.SubStreamGraphsNumber()
1373 def SubStreamGraphsNodes( self , aSubStreamGraphsNumber ):
1374 nodes = self.G.SubStreamGraphsNodes( aSubStreamGraphsNumber )
1375 return self.nodesTuple( nodes )
1376 def StreamMerge( self , aStreamGraph ):
1377 return self.G.StreamMerge( aStreamGraph.G )
1379 ##########################################################
1380 class StreamGraphE(StreamGraph):
1381 ##########################################################
1382 def __init__( self , aName ):
1383 graph = SuperVision.StreamGraphE( aName )
1389 ##########################################################
1391 ##########################################################
1392 def __init__( self , aValue , Verbose ):
1394 self.V.Verbose = Verbose
1395 def ToString( self ):
1396 return self.V.ToString()
1398 return self.V.ToAny()
1399 def Destroy( self ):
1402 ##########################################################
1404 ##########################################################
1405 def __init__( self , aPort , Verbose ):
1407 self.P.Verbose = Verbose
1408 def Input( self , *args ):
1409 types, realargs = getRealArgs(self.P,args)
1410 fn = bs_AddInput_valuedict[types]
1411 anInput = apply( fn, realargs)
1414 aNode = self.P.Node()
1416 if aNode.IsComputing() :
1417 myNode = CNode( aNode , self.P.Verbose )
1418 elif aNode.IsFactory() :
1419 myNode = FNode( aNode , self.P.Verbose )
1420 elif aNode.IsInLine() :
1421 myNode = INode( aNode , self.P.Verbose )
1422 elif aNode.IsGOTO() :
1423 myNode = GNode( aNode , self.P.Verbose )
1424 elif aNode.IsLoop() :
1425 myNode = LNode( aNode , self.P.Verbose )
1426 elif aNode.IsEndLoop() :
1427 myNode = ELNode( aNode , self.P.Verbose )
1428 elif aNode.IsSwitch() :
1429 myNode = SNode( aNode , self.P.Verbose )
1430 elif aNode.IsEndSwitch() :
1431 myNode = ESNode( aNode , self.P.Verbose )
1437 return self.P.Name()
1439 return self.P.Type()
1441 aLink = self.P.Link()
1443 myLink = Link( aLink , self.P.Verbose )
1445 ErrMsg = "Failed to get a Link to " + self.P.Node().Name() + "(" + self.P.Name() + ")"
1450 links = self.P.Links()
1452 while i < len( links ) :
1453 links[ i ] = Link( links[i] , self.P.Verbose )
1456 def PrintLinks( self ):
1457 links = self.P.Links()
1459 while i < len( links ) :
1460 Link( links[ i ] , self.P.Verbose ).Print()
1462 def IsInput( self ):
1463 return self.P.IsInput()
1464 def IsLinked( self ):
1465 return self.P.IsLinked()
1466 def HasInput( self ):
1467 return self.P.HasInput()
1469 return self.P.Kind()
1470 def IsParam( self ):
1471 return self.P.IsParam()
1473 return self.P.IsGate()
1475 return self.P.IsLoop()
1476 def IsInLine( self ):
1477 return self.P.IsInLine()
1478 def IsSwitch( self ):
1479 return self.P.IsSwitch()
1480 def IsEndSwitch( self ):
1481 return self.P.IsEndSwitch()
1482 def IsDataStream( self ):
1483 return self.P.IsDataStream()
1484 # def IsBus( self ):
1485 # return self.P.IsBus()
1487 return self.P.Done()
1489 return self.P.State()
1490 def ToString( self ):
1491 return self.P.ToString()
1493 return self.P.ToAny()
1495 if self.P.IsInput() :
1496 if self.P.IsLinked() :
1497 print "In",self.P.Node().Name(),'(',self.P.Name(),self.P.Kind(),self.P.Type(),') = ',self.P.ToString(),' from ',self.Link().OutPort().Print()
1499 print "In",self.P.Node().Name(),'(',self.P.Name(),self.P.Kind(),self.P.Type(),') = ',self.P.ToString()
1501 print "Out",self.P.Node().Name(),'(',self.P.Name(),self.P.Kind(),self.P.Type(),') = ',self.P.ToString()
1502 def Destroy( self ):
1505 ##########################################################
1506 class StreamPort(Port):
1507 ##########################################################
1508 def __init__( self , aPort , Verbose ):
1510 self.P.Verbose = Verbose
1511 def StreamLink( self ) :
1512 return self.P.StreamLink()
1513 def Dependency( self ) :
1514 return self.P.Dependency()
1515 def SetDependency( self , aDependency ) :
1516 return self.P.SetDependency( aDependency )
1517 def Params( self ) :
1518 sts,aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation = self.P.Params()
1519 return sts,aKindOfSchema,aKindOfInterpolation,aKindOfExtrapolation
1520 def SetParams( self , aKindOfSchema , aKindOfInterpolation , aKindOfExtrapolation ) :
1521 return self.P.SetParams( aKindOfSchema , aKindOfInterpolation , aKindOfExtrapolation )
1522 def NumberOfValues( self ) :
1523 return self.P.NumberOfValues()
1524 def SetNumberOfValues( self , aNumberOfValues ) :
1525 return self.P.SetNumberOfValues( aNumberOfValues )
1527 ##########################################################
1529 ##########################################################
1530 def __init__( self , aLink , Verbose ):
1532 self.L.Verbose = Verbose
1533 def OutPort( self ):
1534 aPort = self.L.OutPort()
1536 myPort = Port( aPort , self.L.Verbose )
1539 print "Error while getting the Port : "
1542 aPort = self.L.InPort()
1544 myPort = Port( aPort , self.L.Verbose )
1547 print "Error while getting the Port : "
1550 anOutPort = self.L.OutPort()
1551 anOutPortName = anOutPort.Name()
1552 anOutPortKind = anOutPort.Kind()
1553 anOutPortValue = anOutPort.ToString()
1554 anOutNode = anOutPort.Node()
1555 anOutNodeName = anOutNode.Name()
1556 anInPort = self.L.InPort()
1557 anInPortName = anInPort.Name()
1558 anInPortKind = anInPort.Kind()
1559 anInNode = anInPort.Node()
1560 anInNodeName = anInNode.Name()
1561 print anOutNodeName,'(',anOutPortName,' ',anOutPortKind,') =',anOutPortValue,' --> ',anInNodeName,'(',anInPortName,')',' ',anInPortKind
1562 def CoordsSize( self ):
1563 return self.L.CoordsSize()
1564 def AddCoord( self , index , X , Y ):
1565 return self.L.AddCoord( index , X , Y )
1566 def ChangeCoord( self , index , X , Y ):
1567 return self.L.ChangeCoord( index , X , Y )
1568 def RemoveCoord( self , index ):
1569 return self.L.RemoveCoord( index )
1570 def Coords( self , index ):
1571 return self.L.Coords( index )
1572 def destroy( self ):
1574 def IsEqual( self, OtherLink ):
1575 return self.L.IsEqual( OtherLink.L )
1577 ##########################################################
1578 class StreamLink(Link):
1579 ##########################################################
1580 def __init__( self , aLink , Verbose ):
1582 self.L.Verbose = Verbose
1583 def OutStreamPort( self ):
1584 aPort = self.L.OutStreamPort()
1586 myPort = StreamPort( aPort , self.L.Verbose )
1589 print "Error while getting the Port : "
1591 def InStreamPort( self ):
1592 aPort = self.L.InStreamPort()
1594 myPort = StreamPort( aPort , self.L.Verbose )
1597 print "Error while getting the Port : "