]> SALOME platform Git repositories - modules/superv.git/commitdiff
Salome HOME
NRI : Merge from Event_Server. Ecole_Ete_a1
authornri <nri@opencascade.com>
Fri, 30 Apr 2004 12:21:46 +0000 (12:21 +0000)
committernri <nri@opencascade.com>
Fri, 30 Apr 2004 12:21:46 +0000 (12:21 +0000)
examples/GraphStream.py [new file with mode: 0644]
examples/GraphStream.xml [new file with mode: 0644]
examples/GraphStreams.py [new file with mode: 0644]
examples/GraphStreams.xml [new file with mode: 0644]
examples/test_events.py [new file with mode: 0644]
examples/test_events.xml [new file with mode: 0644]
examples/testvisu20.xml [new file with mode: 0644]
src/SUPERVGUI/SUPERVGUI.cxx
src/SUPERVGUI/SUPERVGUI.h

diff --git a/examples/GraphStream.py b/examples/GraphStream.py
new file mode 100644 (file)
index 0000000..4941141
--- /dev/null
@@ -0,0 +1,91 @@
+
+# Generated python file of Graph GraphStream
+
+from SuperV import *
+# Graph creation 
+GraphStream = Graph( 'GraphStream' )
+GraphStream.SetName( 'GraphStream' )
+GraphStream.SetAuthor( '' )
+GraphStream.SetComment( '' )
+GraphStream.Coords( 0 , 0 )
+
+# Creation of Factory Nodes
+
+Add = GraphStream.FNode( 'AddComponent' , 'AddComponent' , 'Add' )
+Add.SetName( 'Add' )
+Add.SetAuthor( '' )
+Add.SetContainer( 'FactoryServer' )
+Add.SetComment( 'Add from AddComponent' )
+Add.Coords( 15 , 241 )
+Add.InDataStreamPort( 'istream' , 'long' )
+Add.OutDataStreamPort( 'ostream' , 'long' )
+Add.OutDataStreamPort( 'Ostream' , 'long' )
+
+Sub = GraphStream.FNode( 'SubComponent' , 'SubComponent' , 'Sub' )
+Sub.SetName( 'Sub' )
+Sub.SetAuthor( '' )
+Sub.SetContainer( 'FactoryServer' )
+Sub.SetComment( 'Sub from SubComponent' )
+Sub.Coords( 227 , 99 )
+Sub.InDataStreamPort( 'istream' , 'long' )
+Sub.InDataStreamPort( 'Istream' , 'long' )
+
+Mul = GraphStream.FNode( 'MulComponent' , 'MulComponent' , 'Mul' )
+Mul.SetName( 'Mul' )
+Mul.SetAuthor( '' )
+Mul.SetContainer( 'FactoryServer' )
+Mul.SetComment( 'Mul from MulComponent' )
+Mul.Coords( 444 , 241 )
+
+Div = GraphStream.FNode( 'DivComponent' , 'DivComponent' , 'Div' )
+Div.SetName( 'Div' )
+Div.SetAuthor( '' )
+Div.SetContainer( 'FactoryServer' )
+Div.SetComment( 'Div from DivComponent' )
+Div.Coords( 634 , 98 )
+Div.OutDataStreamPort( 'ostream' , 'long' )
+
+# Creation of Links
+Addz = Add.Port( 'z' )
+Suby = GraphStream.Link( Addz , Sub.Port( 'y' ) )
+Suby.AddCoord( 1 , 189 , 207 )
+Suby.AddCoord( 2 , 189 , 350 )
+
+Muly = GraphStream.Link( Addz , Mul.Port( 'y' ) )
+
+Addostream = Add.Port( 'ostream' )
+Subistream = GraphStream.Link( Addostream , Sub.Port( 'istream' ) )
+Subistream.AddCoord( 1 , 201 , 237 )
+Subistream.AddCoord( 2 , 200 , 378 )
+
+AddOstream = Add.Port( 'Ostream' )
+SubIstream = GraphStream.Link( AddOstream , Sub.Port( 'Istream' ) )
+SubIstream.AddCoord( 1 , 212 , 267 )
+SubIstream.AddCoord( 2 , 211 , 409 )
+
+Subz = Sub.Port( 'z' )
+Mulx = GraphStream.Link( Subz , Mul.Port( 'x' ) )
+Mulx.AddCoord( 1 , 420 , 322 )
+Mulx.AddCoord( 2 , 419 , 180 )
+
+Divx = GraphStream.Link( Subz , Div.Port( 'x' ) )
+
+Mulz = Mul.Port( 'z' )
+Divy = GraphStream.Link( Mulz , Div.Port( 'y' ) )
+Divy.AddCoord( 1 , 622 , 207 )
+Divy.AddCoord( 2 , 623 , 320 )
+
+# Creation of Input datas
+Addx = Add.Input( 'x' , 3)
+Addy = Add.Input( 'y' , 4.5)
+Subx = Sub.Input( 'x' , 1.5)
+Addistream = Add.Input( 'istream' , 1)
+
+# Creation of Output variables
+AddFuncValue = Add.Port( 'FuncValue' )
+Divz = Div.Port( 'z' )
+Divostream = Div.Port( 'ostream' )
+
+GraphStream.Run()
+GraphStream.DoneW()
+GraphStream.PrintPorts()
diff --git a/examples/GraphStream.xml b/examples/GraphStream.xml
new file mode 100644 (file)
index 0000000..c593d79
--- /dev/null
@@ -0,0 +1,292 @@
+<!DOCTYPE Dataflow>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>GraphStream</node-name>
+   <kind>1</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>GraphStream</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>Add\x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>Add\y</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>Sub\x</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>Add\FuncValue</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>Div\z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>Add\istream</inParameter-name>    </inParameter>
+    <outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>Div\ostream</outParameter-name>    </outParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>12/3/2004 - 17:16:56</creation-date>
+   <lastmodification-date>12/3/2004 - 17:35:43</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>0</x-position>
+   <y-position>0</y-position>  </node> </info-list>
+ <node-list>
+<node>
+<component-name>AddComponent</component-name>
+   <interface-name>AddComponent</interface-name>
+   <node-name>Add</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Add</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>FuncValue</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>istream</inParameter-name>    </inParameter>
+    <outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>ostream</outParameter-name>    </outParameter>
+    <outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>Ostream</outParameter-name>    </outParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>12/3/2004 - 17:35:43</creation-date>
+   <lastmodification-date>12/3/2004 - 17:35:43</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>FactoryServer</container>
+   <comment>Add from AddComponent</comment>
+   <x-position>15</x-position>
+   <y-position>241</y-position>  </node>
+  <node>
+<component-name>SubComponent</component-name>
+   <interface-name>SubComponent</interface-name>
+   <node-name>Sub</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Sub</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>istream</inParameter-name>    </inParameter>
+    <inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>Istream</inParameter-name>    </inParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>12/3/2004 - 17:35:43</creation-date>
+   <lastmodification-date>12/3/2004 - 17:35:43</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>FactoryServer</container>
+   <comment>Sub from SubComponent</comment>
+   <x-position>227</x-position>
+   <y-position>99</y-position>  </node>
+  <node>
+<component-name>MulComponent</component-name>
+   <interface-name>MulComponent</interface-name>
+   <node-name>Mul</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Mul</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list/>
+   <PyFunction-list/>
+   <creation-date>12/3/2004 - 17:35:43</creation-date>
+   <lastmodification-date>12/3/2004 - 17:35:43</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>FactoryServer</container>
+   <comment>Mul from MulComponent</comment>
+   <x-position>444</x-position>
+   <y-position>241</y-position>  </node>
+  <node>
+<component-name>DivComponent</component-name>
+   <interface-name>DivComponent</interface-name>
+   <node-name>Div</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Div</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>ostream</outParameter-name>    </outParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>12/3/2004 - 17:35:43</creation-date>
+   <lastmodification-date>12/3/2004 - 17:35:43</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>FactoryServer</container>
+   <comment>Div from DivComponent</comment>
+   <x-position>634</x-position>
+   <y-position>98</y-position>  </node> </node-list>
+ <link-list>
+<link>
+<fromnode-name>Add</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Sub</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>189</x>
+     <y>207</y>    </coord>
+    <coord>
+<x>189</x>
+     <y>350</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Add</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Mul</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Add</fromnode-name>
+   <fromserviceparameter-name>ostream</fromserviceparameter-name>
+   <tonode-name>Sub</tonode-name>
+   <toserviceparameter-name>istream</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>201</x>
+     <y>237</y>    </coord>
+    <coord>
+<x>200</x>
+     <y>378</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Add</fromnode-name>
+   <fromserviceparameter-name>Ostream</fromserviceparameter-name>
+   <tonode-name>Sub</tonode-name>
+   <toserviceparameter-name>Istream</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>212</x>
+     <y>267</y>    </coord>
+    <coord>
+<x>211</x>
+     <y>409</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Sub</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Mul</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>420</x>
+     <y>322</y>    </coord>
+    <coord>
+<x>419</x>
+     <y>180</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Sub</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Div</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Mul</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Div</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>622</x>
+     <y>207</y>    </coord>
+    <coord>
+<x>623</x>
+     <y>320</y>    </coord>   </coord-list>  </link> </link-list>
+ <data-list>
+<data>
+<fromnode-name>GraphStream</fromnode-name>
+   <fromserviceparameter-name>Add\x</fromserviceparameter-name>
+   <tonode-name>Add</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <data-value>
+<value-type>7</value-type>
+    <value>3</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStream</fromnode-name>
+   <fromserviceparameter-name>Add\y</fromserviceparameter-name>
+   <tonode-name>Add</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <data-value>
+<value-type>7</value-type>
+    <value>4.5</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStream</fromnode-name>
+   <fromserviceparameter-name>Sub\x</fromserviceparameter-name>
+   <tonode-name>Sub</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <data-value>
+<value-type>7</value-type>
+    <value>1.5</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStream</fromnode-name>
+   <fromserviceparameter-name>Add\istream</fromserviceparameter-name>
+   <tonode-name>Add</tonode-name>
+   <toserviceparameter-name>istream</toserviceparameter-name>
+   <data-value>
+<value-type>3</value-type>
+    <value>1</value>   </data-value>
+   <coord-list/>  </data> </data-list></dataflow>
diff --git a/examples/GraphStreams.py b/examples/GraphStreams.py
new file mode 100644 (file)
index 0000000..fc9367b
--- /dev/null
@@ -0,0 +1,278 @@
+
+# Generated python file of Graph GraphStreams
+
+from SuperV import *
+# Graph creation 
+GraphStreams = Graph( 'GraphStreams' )
+GraphStreams.SetName( 'GraphStreams' )
+GraphStreams.SetAuthor( '' )
+GraphStreams.SetComment( '' )
+GraphStreams.Coords( 0 , 0 )
+
+# Creation of Factory Nodes
+
+Add = GraphStreams.FNode( 'AddComponent' , 'AddComponent' , 'Add' )
+Add.SetName( 'Add' )
+Add.SetAuthor( '' )
+Add.SetContainer( 'FactoryServer' )
+Add.SetComment( 'Add from AddComponent' )
+Add.Coords( 256 , 156 )
+Add.InDataStreamPort( 'istream' , 'long' )
+Add.OutDataStreamPort( 'ostream' , 'long' )
+Add.OutDataStreamPort( 'Ostream' , 'long' )
+
+Sub = GraphStreams.FNode( 'SubComponent' , 'SubComponent' , 'Sub' )
+Sub.SetName( 'Sub' )
+Sub.SetAuthor( '' )
+Sub.SetContainer( 'FactoryServer' )
+Sub.SetComment( 'Sub from SubComponent' )
+Sub.Coords( 519 , 33 )
+Sub.InDataStreamPort( 'istream' , 'long' )
+Sub.InDataStreamPort( 'Istream' , 'long' )
+
+Mul = GraphStreams.FNode( 'MulComponent' , 'MulComponent' , 'Mul' )
+Mul.SetName( 'Mul' )
+Mul.SetAuthor( '' )
+Mul.SetContainer( 'FactoryServer' )
+Mul.SetComment( 'Mul from MulComponent' )
+Mul.Coords( 723 , 156 )
+
+Div = GraphStreams.FNode( 'DivComponent' , 'DivComponent' , 'Div' )
+Div.SetName( 'Div' )
+Div.SetAuthor( '' )
+Div.SetContainer( 'FactoryServer' )
+Div.SetComment( 'Div from DivComponent' )
+Div.Coords( 936 , 34 )
+Div.OutDataStreamPort( 'ostream' , 'long' )
+
+Add_1 = GraphStreams.FNode( 'AddComponent' , 'AddComponent' , 'Add' )
+Add_1.SetName( 'Add_1' )
+Add_1.SetAuthor( '' )
+Add_1.SetContainer( 'localhost/FactoryServer' )
+Add_1.SetComment( 'Add from AddComponent' )
+Add_1.Coords( 252 , 499 )
+Add_1.InDataStreamPort( 'istream' , 'long' )
+Add_1.OutDataStreamPort( 'ostream' , 'long' )
+Add_1.OutDataStreamPort( 'Ostream' , 'long' )
+
+Sub_1 = GraphStreams.FNode( 'SubComponent' , 'SubComponent' , 'Sub' )
+Sub_1.SetName( 'Sub_1' )
+Sub_1.SetAuthor( '' )
+Sub_1.SetContainer( 'localhost/FactoryServer' )
+Sub_1.SetComment( 'Sub from SubComponent' )
+Sub_1.Coords( 518 , 369 )
+Sub_1.InDataStreamPort( 'istream' , 'long' )
+Sub_1.InDataStreamPort( 'Istream' , 'long' )
+
+Mul_1 = GraphStreams.FNode( 'MulComponent' , 'MulComponent' , 'Mul' )
+Mul_1.SetName( 'Mul_1' )
+Mul_1.SetAuthor( '' )
+Mul_1.SetContainer( 'localhost/FactoryServer' )
+Mul_1.SetComment( 'Mul from MulComponent' )
+Mul_1.Coords( 731 , 498 )
+
+Div_1 = GraphStreams.FNode( 'DivComponent' , 'DivComponent' , 'Div' )
+Div_1.SetName( 'Div_1' )
+Div_1.SetAuthor( '' )
+Div_1.SetContainer( 'localhost/FactoryServer' )
+Div_1.SetComment( 'Div from DivComponent' )
+Div_1.Coords( 931 , 369 )
+Div_1.OutDataStreamPort( 'ostream' , 'long' )
+
+# Creation of Loop Nodes
+PyLoop = []
+PyLoop.append( 'import time ' )
+PyLoop.append( 'def Init(Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub) :   ' )
+PyLoop.append( '    if Min <= Max :   ' )
+PyLoop.append( '        Index = Min   ' )
+PyLoop.append( '    else :   ' )
+PyLoop.append( '        Index = Max   ' )
+PyLoop.append( '    time.sleep( 1 ) ' )
+PyLoop.append( '    return Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub ' )
+PyMoreLoop = []
+PyMoreLoop.append( 'import time ' )
+PyMoreLoop.append( 'def More(Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub) :   ' )
+PyMoreLoop.append( '    if Index < Max :   ' )
+PyMoreLoop.append( '        DoLoop = 1   ' )
+PyMoreLoop.append( '    else :   ' )
+PyMoreLoop.append( '        DoLoop = 0   ' )
+PyMoreLoop.append( '    time.sleep( 1 ) ' )
+PyMoreLoop.append( '    return DoLoop,Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub ' )
+PyNextLoop = []
+PyNextLoop.append( 'import time ' )
+PyNextLoop.append( 'def Next(Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub) :   ' )
+PyNextLoop.append( '    Index = Index + Incr   ' )
+PyNextLoop.append( '    time.sleep( 1 ) ' )
+PyNextLoop.append( '    return Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub ' )
+Loop,EndLoop = GraphStreams.LNode( 'Init' , PyLoop , 'More' , PyMoreLoop , 'Next' , PyNextLoop )
+EndLoop.SetName( 'EndLoop' )
+EndLoop.SetAuthor( '' )
+EndLoop.SetComment( '' )
+EndLoop.Coords( 1157 , 388 )
+PyEndLoop = []
+EndLoop.SetPyFunction( 'EndInit' , PyEndLoop )
+Loop.SetName( 'Loop' )
+Loop.SetAuthor( '' )
+Loop.SetComment( '' )
+Loop.Coords( 5 , 399 )
+Loop.InPort( 'Index' , 'long' )
+Loop.InPort( 'Min' , 'long' )
+Loop.InPort( 'Max' , 'long' )
+Loop.InPort( 'Incr' , 'long' )
+Loop.InPort( 'z_Div' , 'double' )
+Loop.InPort( 'z_Div_1' , 'double' )
+Loop.InPort( 'y_Add' , 'double' )
+Loop.InPort( 'x_Sub' , 'double' )
+
+# Creation of Links
+Addz = Add.Port( 'z' )
+Suby = GraphStreams.Link( Addz , Sub.Port( 'y' ) )
+Suby.AddCoord( 1 , 448 , 143 )
+Suby.AddCoord( 2 , 447 , 266 )
+
+Muly = GraphStreams.Link( Addz , Mul.Port( 'y' ) )
+
+Addostream = Add.Port( 'ostream' )
+Subistream = GraphStreams.Link( Addostream , Sub.Port( 'istream' ) )
+Subistream.AddCoord( 1 , 474 , 172 )
+Subistream.AddCoord( 2 , 474 , 294 )
+
+AddOstream = Add.Port( 'Ostream' )
+SubIstream = GraphStreams.Link( AddOstream , Sub.Port( 'Istream' ) )
+SubIstream.AddCoord( 1 , 499 , 201 )
+SubIstream.AddCoord( 2 , 500 , 322 )
+
+Subz = Sub.Port( 'z' )
+Mulx = GraphStreams.Link( Subz , Mul.Port( 'x' ) )
+Mulx.AddCoord( 1 , 707 , 237 )
+Mulx.AddCoord( 2 , 706 , 114 )
+
+Divx = GraphStreams.Link( Subz , Div.Port( 'x' ) )
+
+Mulz = Mul.Port( 'z' )
+Divy = GraphStreams.Link( Mulz , Div.Port( 'y' ) )
+Divy.AddCoord( 1 , 912 , 143 )
+Divy.AddCoord( 2 , 912 , 236 )
+
+Divz = Div.Port( 'z' )
+EndLoopz_Div = GraphStreams.Link( Divz , EndLoop.Port( 'z_Div' ) )
+EndLoopz_Div.AddCoord( 1 , 1147 , 537 )
+EndLoopz_Div.AddCoord( 2 , 1148 , 113 )
+
+Divostream = Div.Port( 'ostream' )
+Add_1istream = GraphStreams.Link( Divostream , Add_1.Port( 'istream' ) )
+Add_1istream.AddCoord( 1 , 232 , 638 )
+Add_1istream.AddCoord( 2 , 232 , 763 )
+Add_1istream.AddCoord( 3 , 1126 , 763 )
+Add_1istream.AddCoord( 4 , 1125 , 144 )
+
+Add_1z = Add_1.Port( 'z' )
+Sub_1y = GraphStreams.Link( Add_1z , Sub_1.Port( 'y' ) )
+Sub_1y.AddCoord( 1 , 445 , 478 )
+Sub_1y.AddCoord( 2 , 445 , 608 )
+
+Mul_1y = GraphStreams.Link( Add_1z , Mul_1.Port( 'y' ) )
+
+Add_1ostream = Add_1.Port( 'ostream' )
+Sub_1istream = GraphStreams.Link( Add_1ostream , Sub_1.Port( 'istream' ) )
+Sub_1istream.AddCoord( 1 , 473 , 508 )
+Sub_1istream.AddCoord( 2 , 474 , 638 )
+
+Add_1Ostream = Add_1.Port( 'Ostream' )
+Sub_1Istream = GraphStreams.Link( Add_1Ostream , Sub_1.Port( 'Istream' ) )
+Sub_1Istream.AddCoord( 1 , 498 , 535 )
+Sub_1Istream.AddCoord( 2 , 498 , 667 )
+
+Sub_1z = Sub_1.Port( 'z' )
+Mul_1x = GraphStreams.Link( Sub_1z , Mul_1.Port( 'x' ) )
+Mul_1x.AddCoord( 1 , 708 , 579 )
+Mul_1x.AddCoord( 2 , 707 , 450 )
+
+Div_1x = GraphStreams.Link( Sub_1z , Div_1.Port( 'x' ) )
+
+Mul_1z = Mul_1.Port( 'z' )
+Div_1y = GraphStreams.Link( Mul_1z , Div_1.Port( 'y' ) )
+Div_1y.AddCoord( 1 , 913 , 479 )
+Div_1y.AddCoord( 2 , 913 , 579 )
+
+Div_1z = Div_1.Port( 'z' )
+EndLoopz_Div_1 = GraphStreams.Link( Div_1z , EndLoop.Port( 'z_Div_1' ) )
+EndLoopz_Div_1.AddCoord( 1 , 1138 , 567 )
+EndLoopz_Div_1.AddCoord( 2 , 1138 , 449 )
+
+Div_1ostream = Div_1.Port( 'ostream' )
+Addistream = GraphStreams.Link( Div_1ostream , Add.Port( 'istream' ) )
+Addistream.AddCoord( 1 , 230 , 293 )
+Addistream.AddCoord( 2 , 229 , 426 )
+Addistream.AddCoord( 3 , 475 , 425 )
+Addistream.AddCoord( 4 , 475 , 352 )
+Addistream.AddCoord( 5 , 1110 , 352 )
+Addistream.AddCoord( 6 , 1111 , 477 )
+
+LoopIndex = Loop.Port( 'Index' )
+EndLoopIndex = GraphStreams.Link( LoopIndex , EndLoop.Port( 'Index' ) )
+
+Addx = GraphStreams.Link( LoopIndex , Add.Port( 'x' ) )
+Addx.AddCoord( 1 , 201 , 236 )
+Addx.AddCoord( 2 , 202 , 433 )
+
+Add_1x = GraphStreams.Link( LoopIndex , Add_1.Port( 'x' ) )
+Add_1x.AddCoord( 1 , 199 , 578 )
+Add_1x.AddCoord( 2 , 200 , 435 )
+
+LoopMin = Loop.Port( 'Min' )
+EndLoopMin = GraphStreams.Link( LoopMin , EndLoop.Port( 'Min' ) )
+
+LoopMax = Loop.Port( 'Max' )
+EndLoopMax = GraphStreams.Link( LoopMax , EndLoop.Port( 'Max' ) )
+
+LoopIncr = Loop.Port( 'Incr' )
+EndLoopIncr = GraphStreams.Link( LoopIncr , EndLoop.Port( 'Incr' ) )
+
+Loopy_Add = Loop.Port( 'y_Add' )
+EndLoopy_Add = GraphStreams.Link( Loopy_Add , EndLoop.Port( 'y_Add' ) )
+
+Addy = GraphStreams.Link( Loopy_Add , Add.Port( 'y' ) )
+Addy.AddCoord( 1 , 183 , 266 )
+Addy.AddCoord( 2 , 183 , 608 )
+
+Add_1y = GraphStreams.Link( Loopy_Add , Add_1.Port( 'y' ) )
+
+Loopx_Sub = Loop.Port( 'x_Sub' )
+EndLoopx_Sub = GraphStreams.Link( Loopx_Sub , EndLoop.Port( 'x_Sub' ) )
+
+Subx = GraphStreams.Link( Loopx_Sub , Sub.Port( 'x' ) )
+Subx.AddCoord( 1 , 167 , 113 )
+Subx.AddCoord( 2 , 165 , 636 )
+
+Sub_1x = GraphStreams.Link( Loopx_Sub , Sub_1.Port( 'x' ) )
+Sub_1x.AddCoord( 1 , 167 , 450 )
+Sub_1x.AddCoord( 2 , 165 , 637 )
+
+# Creation of Input datas
+LoopIndex = Loop.Input( 'Index' , 0)
+LoopMin = Loop.Input( 'Min' , 1)
+LoopMax = Loop.Input( 'Max' , 10)
+LoopIncr = Loop.Input( 'Incr' , 1)
+Loopz_Div = Loop.Input( 'z_Div' , 0)
+Loopz_Div_1 = Loop.Input( 'z_Div_1' , 0)
+Loopy_Add = Loop.Input( 'y_Add' , 4.5)
+Loopx_Sub = Loop.Input( 'x_Sub' , 1.5)
+
+# Creation of Output variables
+AddFuncValue = Add.Port( 'FuncValue' )
+Add_1FuncValue = Add_1.Port( 'FuncValue' )
+Loopz_Div = Loop.Port( 'z_Div' )
+Loopz_Div_1 = Loop.Port( 'z_Div_1' )
+EndLoopIndex = EndLoop.Port( 'Index' )
+EndLoopMin = EndLoop.Port( 'Min' )
+EndLoopMax = EndLoop.Port( 'Max' )
+EndLoopIncr = EndLoop.Port( 'Incr' )
+EndLoopz_Div = EndLoop.Port( 'z_Div' )
+EndLoopz_Div_1 = EndLoop.Port( 'z_Div_1' )
+EndLoopy_Add = EndLoop.Port( 'y_Add' )
+EndLoopx_Sub = EndLoop.Port( 'x_Sub' )
+
+GraphStreams.Run()
+GraphStreams.DoneW()
+GraphStreams.PrintPorts()
diff --git a/examples/GraphStreams.xml b/examples/GraphStreams.xml
new file mode 100644 (file)
index 0000000..8ab2d9b
--- /dev/null
@@ -0,0 +1,922 @@
+<!DOCTYPE Dataflow>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>GraphStreams</node-name>
+   <kind>1</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>GraphStreams</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Loop\Index</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Loop\Min</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Loop\Max</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Loop\Incr</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>Loop\z_Div</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>Loop\z_Div_1</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>Loop\y_Add</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>Loop\x_Sub</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>Add\FuncValue</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>Add_1\FuncValue</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>Loop\z_Div</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>Loop\z_Div_1</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>EndLoop\Index</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>EndLoop\Min</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>EndLoop\Max</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>EndLoop\Incr</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>EndLoop\z_Div</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>EndLoop\z_Div_1</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>EndLoop\y_Add</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>EndLoop\x_Sub</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list/>
+   <PyFunction-list/>
+   <creation-date>15/3/2004 - 14:26:30</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>0</x-position>
+   <y-position>0</y-position>  </node> </info-list>
+ <node-list>
+<node>
+<component-name>AddComponent</component-name>
+   <interface-name>AddComponent</interface-name>
+   <node-name>Add</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Add</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>FuncValue</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>istream</inParameter-name>    </inParameter>
+    <outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>ostream</outParameter-name>    </outParameter>
+    <outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>Ostream</outParameter-name>    </outParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>FactoryServer</container>
+   <comment>Add from AddComponent</comment>
+   <x-position>256</x-position>
+   <y-position>156</y-position>  </node>
+  <node>
+<component-name>SubComponent</component-name>
+   <interface-name>SubComponent</interface-name>
+   <node-name>Sub</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Sub</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>istream</inParameter-name>    </inParameter>
+    <inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>Istream</inParameter-name>    </inParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>FactoryServer</container>
+   <comment>Sub from SubComponent</comment>
+   <x-position>519</x-position>
+   <y-position>33</y-position>  </node>
+  <node>
+<component-name>MulComponent</component-name>
+   <interface-name>MulComponent</interface-name>
+   <node-name>Mul</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Mul</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list/>
+   <PyFunction-list/>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>FactoryServer</container>
+   <comment>Mul from MulComponent</comment>
+   <x-position>723</x-position>
+   <y-position>156</y-position>  </node>
+  <node>
+<component-name>DivComponent</component-name>
+   <interface-name>DivComponent</interface-name>
+   <node-name>Div</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Div</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>ostream</outParameter-name>    </outParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>FactoryServer</container>
+   <comment>Div from DivComponent</comment>
+   <x-position>936</x-position>
+   <y-position>34</y-position>  </node>
+  <node>
+<component-name>AddComponent</component-name>
+   <interface-name>AddComponent</interface-name>
+   <node-name>Add_1</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Add</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>FuncValue</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>istream</inParameter-name>    </inParameter>
+    <outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>ostream</outParameter-name>    </outParameter>
+    <outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>Ostream</outParameter-name>    </outParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>localhost/FactoryServer</container>
+   <comment>Add from AddComponent</comment>
+   <x-position>252</x-position>
+   <y-position>499</y-position>  </node>
+  <node>
+<component-name>SubComponent</component-name>
+   <interface-name>SubComponent</interface-name>
+   <node-name>Sub_1</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Sub</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>istream</inParameter-name>    </inParameter>
+    <inParameter>
+<inParameter-type>long</inParameter-type>
+     <inParameter-name>Istream</inParameter-name>    </inParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>localhost/FactoryServer</container>
+   <comment>Sub from SubComponent</comment>
+   <x-position>518</x-position>
+   <y-position>369</y-position>  </node>
+  <node>
+<component-name>MulComponent</component-name>
+   <interface-name>MulComponent</interface-name>
+   <node-name>Mul_1</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Mul</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list/>
+   <PyFunction-list/>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>localhost/FactoryServer</container>
+   <comment>Mul from MulComponent</comment>
+   <x-position>731</x-position>
+   <y-position>498</y-position>  </node>
+  <node>
+<component-name>DivComponent</component-name>
+   <interface-name>DivComponent</interface-name>
+   <node-name>Div_1</node-name>
+   <kind>0</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Div</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+     <outParameter-name>ostream</outParameter-name>    </outParameter>   </DataStream-list>
+   <PyFunction-list/>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>localhost/FactoryServer</container>
+   <comment>Div from DivComponent</comment>
+   <x-position>931</x-position>
+   <y-position>369</y-position>  </node>
+  <node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>Loop</node-name>
+   <kind>4</kind>
+   <coupled-node>EndLoop</coupled-node>
+   <service>
+<service-name>Loop</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Index</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Min</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Max</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Incr</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>z_Div</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>z_Div_1</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y_Add</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x_Sub</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>Index</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>Min</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>Max</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>Incr</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z_Div</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z_Div_1</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>y_Add</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>x_Sub</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list/>
+   <PyFunction-list>
+<PyFunction>
+<FuncName>Init</FuncName>
+     <PyFunc><![CDATA[import time ]]></PyFunc>
+     <PyFunc><![CDATA[def Init(Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub) :   ]]></PyFunc>
+     <PyFunc><![CDATA[    if Min <= Max :   ]]></PyFunc>
+     <PyFunc><![CDATA[        Index = Min   ]]></PyFunc>
+     <PyFunc><![CDATA[    else :   ]]></PyFunc>
+     <PyFunc><![CDATA[        Index = Max   ]]></PyFunc>
+     <PyFunc><![CDATA[    time.sleep( 1 ) ]]></PyFunc>
+     <PyFunc><![CDATA[    return Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub ]]></PyFunc>    </PyFunction>
+    <PyFunction>
+<FuncName>More</FuncName>
+     <PyFunc><![CDATA[import time ]]></PyFunc>
+     <PyFunc><![CDATA[def More(Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub) :   ]]></PyFunc>
+     <PyFunc><![CDATA[    if Index < Max :   ]]></PyFunc>
+     <PyFunc><![CDATA[        DoLoop = 1   ]]></PyFunc>
+     <PyFunc><![CDATA[    else :   ]]></PyFunc>
+     <PyFunc><![CDATA[        DoLoop = 0   ]]></PyFunc>
+     <PyFunc><![CDATA[    time.sleep( 1 ) ]]></PyFunc>
+     <PyFunc><![CDATA[    return DoLoop,Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub ]]></PyFunc>    </PyFunction>
+    <PyFunction>
+<FuncName>Next</FuncName>
+     <PyFunc><![CDATA[import time ]]></PyFunc>
+     <PyFunc><![CDATA[def Next(Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub) :   ]]></PyFunc>
+     <PyFunc><![CDATA[    Index = Index + Incr   ]]></PyFunc>
+     <PyFunc><![CDATA[    time.sleep( 1 ) ]]></PyFunc>
+     <PyFunc><![CDATA[    return Index,Min,Max,Incr,Z_Div,Z_Div_1,y_Add,x_Sub ]]></PyFunc>    </PyFunction>   </PyFunction-list>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>5</x-position>
+   <y-position>399</y-position>  </node>
+  <node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>EndLoop</node-name>
+   <kind>5</kind>
+   <coupled-node>Loop</coupled-node>
+   <service>
+<service-name>EndLoop</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Index</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Min</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Max</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Incr</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>z_Div</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>z_Div_1</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>y_Add</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x_Sub</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>Index</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>Min</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>Max</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>Incr</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z_Div</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>z_Div_1</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>y_Add</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>x_Sub</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <DataStream-list/>
+   <PyFunction-list>
+<PyFunction>
+<FuncName>EndInit</FuncName>
+     <PyFunc><![CDATA[?]]></PyFunc>    </PyFunction>   </PyFunction-list>
+   <creation-date>15/3/2004 - 14:28:51</creation-date>
+   <lastmodification-date>15/3/2004 - 14:28:51</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>1157</x-position>
+   <y-position>388</y-position>  </node> </node-list>
+ <link-list>
+<link>
+<fromnode-name>Add</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Sub</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>448</x>
+     <y>143</y>    </coord>
+    <coord>
+<x>447</x>
+     <y>266</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Add</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Mul</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Add</fromnode-name>
+   <fromserviceparameter-name>ostream</fromserviceparameter-name>
+   <tonode-name>Sub</tonode-name>
+   <toserviceparameter-name>istream</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>474</x>
+     <y>172</y>    </coord>
+    <coord>
+<x>474</x>
+     <y>294</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Add</fromnode-name>
+   <fromserviceparameter-name>Ostream</fromserviceparameter-name>
+   <tonode-name>Sub</tonode-name>
+   <toserviceparameter-name>Istream</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>499</x>
+     <y>201</y>    </coord>
+    <coord>
+<x>500</x>
+     <y>322</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Sub</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Mul</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>707</x>
+     <y>237</y>    </coord>
+    <coord>
+<x>706</x>
+     <y>114</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Sub</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Div</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Mul</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Div</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>912</x>
+     <y>143</y>    </coord>
+    <coord>
+<x>912</x>
+     <y>236</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Div</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>EndLoop</tonode-name>
+   <toserviceparameter-name>z_Div</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>1147</x>
+     <y>537</y>    </coord>
+    <coord>
+<x>1148</x>
+     <y>113</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Div</fromnode-name>
+   <fromserviceparameter-name>ostream</fromserviceparameter-name>
+   <tonode-name>Add_1</tonode-name>
+   <toserviceparameter-name>istream</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>232</x>
+     <y>638</y>    </coord>
+    <coord>
+<x>232</x>
+     <y>763</y>    </coord>
+    <coord>
+<x>1126</x>
+     <y>763</y>    </coord>
+    <coord>
+<x>1125</x>
+     <y>144</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Add_1</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Sub_1</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>445</x>
+     <y>478</y>    </coord>
+    <coord>
+<x>445</x>
+     <y>608</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Add_1</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Mul_1</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Add_1</fromnode-name>
+   <fromserviceparameter-name>ostream</fromserviceparameter-name>
+   <tonode-name>Sub_1</tonode-name>
+   <toserviceparameter-name>istream</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>473</x>
+     <y>508</y>    </coord>
+    <coord>
+<x>474</x>
+     <y>638</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Add_1</fromnode-name>
+   <fromserviceparameter-name>Ostream</fromserviceparameter-name>
+   <tonode-name>Sub_1</tonode-name>
+   <toserviceparameter-name>Istream</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>498</x>
+     <y>535</y>    </coord>
+    <coord>
+<x>498</x>
+     <y>667</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Sub_1</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Mul_1</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>708</x>
+     <y>579</y>    </coord>
+    <coord>
+<x>707</x>
+     <y>450</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Sub_1</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Div_1</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Mul_1</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>Div_1</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>913</x>
+     <y>479</y>    </coord>
+    <coord>
+<x>913</x>
+     <y>579</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Div_1</fromnode-name>
+   <fromserviceparameter-name>z</fromserviceparameter-name>
+   <tonode-name>EndLoop</tonode-name>
+   <toserviceparameter-name>z_Div_1</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>1138</x>
+     <y>567</y>    </coord>
+    <coord>
+<x>1138</x>
+     <y>449</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Div_1</fromnode-name>
+   <fromserviceparameter-name>ostream</fromserviceparameter-name>
+   <tonode-name>Add</tonode-name>
+   <toserviceparameter-name>istream</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>230</x>
+     <y>293</y>    </coord>
+    <coord>
+<x>229</x>
+     <y>426</y>    </coord>
+    <coord>
+<x>475</x>
+     <y>425</y>    </coord>
+    <coord>
+<x>475</x>
+     <y>352</y>    </coord>
+    <coord>
+<x>1110</x>
+     <y>352</y>    </coord>
+    <coord>
+<x>1111</x>
+     <y>477</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+   <tonode-name>EndLoop</tonode-name>
+   <toserviceparameter-name>DoLoop</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>Index</fromserviceparameter-name>
+   <tonode-name>EndLoop</tonode-name>
+   <toserviceparameter-name>Index</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>Index</fromserviceparameter-name>
+   <tonode-name>Add</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>201</x>
+     <y>236</y>    </coord>
+    <coord>
+<x>202</x>
+     <y>433</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>Index</fromserviceparameter-name>
+   <tonode-name>Add_1</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>199</x>
+     <y>578</y>    </coord>
+    <coord>
+<x>200</x>
+     <y>435</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>Min</fromserviceparameter-name>
+   <tonode-name>EndLoop</tonode-name>
+   <toserviceparameter-name>Min</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>Max</fromserviceparameter-name>
+   <tonode-name>EndLoop</tonode-name>
+   <toserviceparameter-name>Max</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>Incr</fromserviceparameter-name>
+   <tonode-name>EndLoop</tonode-name>
+   <toserviceparameter-name>Incr</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>y_Add</fromserviceparameter-name>
+   <tonode-name>EndLoop</tonode-name>
+   <toserviceparameter-name>y_Add</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>y_Add</fromserviceparameter-name>
+   <tonode-name>Add</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>183</x>
+     <y>266</y>    </coord>
+    <coord>
+<x>183</x>
+     <y>608</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>y_Add</fromserviceparameter-name>
+   <tonode-name>Add_1</tonode-name>
+   <toserviceparameter-name>y</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>x_Sub</fromserviceparameter-name>
+   <tonode-name>EndLoop</tonode-name>
+   <toserviceparameter-name>x_Sub</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>x_Sub</fromserviceparameter-name>
+   <tonode-name>Sub</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>167</x>
+     <y>113</y>    </coord>
+    <coord>
+<x>165</x>
+     <y>636</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Loop</fromnode-name>
+   <fromserviceparameter-name>x_Sub</fromserviceparameter-name>
+   <tonode-name>Sub_1</tonode-name>
+   <toserviceparameter-name>x</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>167</x>
+     <y>450</y>    </coord>
+    <coord>
+<x>165</x>
+     <y>637</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>EndLoop</fromnode-name>
+   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+   <tonode-name>Loop</tonode-name>
+   <toserviceparameter-name>InitLoop</toserviceparameter-name>
+   <coord-list/>  </link> </link-list>
+ <data-list>
+<data>
+<fromnode-name>GraphStreams</fromnode-name>
+   <fromserviceparameter-name>Loop\Index</fromserviceparameter-name>
+   <tonode-name>Loop</tonode-name>
+   <toserviceparameter-name>Index</toserviceparameter-name>
+   <data-value>
+<value-type>3</value-type>
+    <value>0</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStreams</fromnode-name>
+   <fromserviceparameter-name>Loop\Min</fromserviceparameter-name>
+   <tonode-name>Loop</tonode-name>
+   <toserviceparameter-name>Min</toserviceparameter-name>
+   <data-value>
+<value-type>3</value-type>
+    <value>1</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStreams</fromnode-name>
+   <fromserviceparameter-name>Loop\Max</fromserviceparameter-name>
+   <tonode-name>Loop</tonode-name>
+   <toserviceparameter-name>Max</toserviceparameter-name>
+   <data-value>
+<value-type>3</value-type>
+    <value>10</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStreams</fromnode-name>
+   <fromserviceparameter-name>Loop\Incr</fromserviceparameter-name>
+   <tonode-name>Loop</tonode-name>
+   <toserviceparameter-name>Incr</toserviceparameter-name>
+   <data-value>
+<value-type>3</value-type>
+    <value>1</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStreams</fromnode-name>
+   <fromserviceparameter-name>Loop\z_Div</fromserviceparameter-name>
+   <tonode-name>Loop</tonode-name>
+   <toserviceparameter-name>z_Div</toserviceparameter-name>
+   <data-value>
+<value-type>7</value-type>
+    <value>0</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStreams</fromnode-name>
+   <fromserviceparameter-name>Loop\z_Div_1</fromserviceparameter-name>
+   <tonode-name>Loop</tonode-name>
+   <toserviceparameter-name>z_Div_1</toserviceparameter-name>
+   <data-value>
+<value-type>7</value-type>
+    <value>0</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStreams</fromnode-name>
+   <fromserviceparameter-name>Loop\y_Add</fromserviceparameter-name>
+   <tonode-name>Loop</tonode-name>
+   <toserviceparameter-name>y_Add</toserviceparameter-name>
+   <data-value>
+<value-type>7</value-type>
+    <value>4.5</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>GraphStreams</fromnode-name>
+   <fromserviceparameter-name>Loop\x_Sub</fromserviceparameter-name>
+   <tonode-name>Loop</tonode-name>
+   <toserviceparameter-name>x_Sub</toserviceparameter-name>
+   <data-value>
+<value-type>7</value-type>
+    <value>1.5</value>   </data-value>
+   <coord-list/>  </data> </data-list></dataflow>
diff --git a/examples/test_events.py b/examples/test_events.py
new file mode 100644 (file)
index 0000000..fe394f4
--- /dev/null
@@ -0,0 +1,66 @@
+
+# Generated python file of Graph aNewDataFlow
+
+from SuperV import *
+# Graph creation 
+aNewDataFlow = Graph( 'aNewDataFlow' )
+aNewDataFlow.SetName( 'aNewDataFlow' )
+aNewDataFlow.SetAuthor( '' )
+aNewDataFlow.SetComment( '' )
+aNewDataFlow.Coords( 0 , 0 )
+
+# Creation of Factory Nodes
+
+# Creation of InLine Nodes
+PyFunc = []
+PyFunc.append( 'def Func( A ):     ' )
+PyFunc.append( '  import batchmode_visu  ' )
+PyFunc.append( '  batchmode_visu.myVisu.CreateTestView()   ' )
+PyFunc.append( '  batchmode_visu.myVisu.ShowTestObject()   ' )
+PyFunc.append( '  return A     ' )
+Func = aNewDataFlow.INode( 'Func' , PyFunc )
+Func.SetName( 'Func' )
+Func.SetAuthor( '' )
+Func.SetComment( 'Compute Node' )
+Func.Coords( 375 , 162 )
+Func.InPort( 'A' , 'int' )
+Func.OutPort( 'B' , 'int' )
+
+# Creation of Loop Nodes
+PyInit = []
+PyInit.append( 'def Init( A ):   ' )
+PyInit.append( '  return A   ' )
+PyMoreInit = []
+PyMoreInit.append( 'def More( A ):   ' )
+PyMoreInit.append( '  if A < 10:   ' )
+PyMoreInit.append( '    return 1,A   ' )
+PyMoreInit.append( '  return 0,A   ' )
+PyNextInit = []
+PyNextInit.append( 'def Next( A ):   ' )
+PyNextInit.append( '  return (A + 1)   ' )
+Init,EndInit = aNewDataFlow.LNode( 'Init' , PyInit , 'More' , PyMoreInit , 'Next' , PyNextInit )
+EndInit.SetName( 'EndInit' )
+EndInit.SetAuthor( '' )
+EndInit.SetComment( '' )
+EndInit.Coords( 740 , 168 )
+PyEndInit = []
+EndInit.SetPyFunction( 'EndInit' , PyEndInit )
+Init.SetName( 'Init' )
+Init.SetAuthor( '' )
+Init.SetComment( '' )
+Init.Coords( 118 , 160 )
+Init.InPort( 'A' , 'int' )
+Init.OutPort( 'A' , 'int' )
+
+# Creation of Links
+InitA = Init.Port( 'A' )
+FuncA = aNewDataFlow.Link( InitA , Func.Port( 'A' ) )
+
+FuncB = Func.Port( 'B' )
+EndInitA = aNewDataFlow.Link( FuncB , EndInit.Port( 'A' ) )
+
+# Creation of Input datas
+InitA = Init.Input( 'A' , 0)
+
+# Creation of Output variables
+EndInitA = EndInit.Port( 'A' )
diff --git a/examples/test_events.xml b/examples/test_events.xml
new file mode 100644 (file)
index 0000000..97a7ce8
--- /dev/null
@@ -0,0 +1,167 @@
+<!DOCTYPE Dataflow>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>aNewDataFlow</node-name>
+   <kind>1</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>aNewDataFlow</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>int</inParameter-type>
+      <inParameter-name>Init\A</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>int</outParameter-type>
+      <outParameter-name>EndInit\A</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <Parameter-list/>
+   <PyFunction-list/>
+   <creation-date>2/4/2004 - 16:38:31</creation-date>
+   <lastmodification-date>2/4/2004 - 18:30:31</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>0</x-position>
+   <y-position>0</y-position>  </node> </info-list>
+ <node-list>
+<node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>Init</node-name>
+   <kind>4</kind>
+   <coupled-node>EndInit</coupled-node>
+   <service>
+<service-name>Init</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>int</inParameter-type>
+      <inParameter-name>A</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>int</outParameter-type>
+      <outParameter-name>A</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <Parameter-list/>
+   <PyFunction-list>
+<PyFunction>
+<FuncName>Init</FuncName>
+     <PyFunc><![CDATA[def Init( A ):   ]]></PyFunc>
+     <PyFunc><![CDATA[  return A   ]]></PyFunc>    </PyFunction>
+    <PyFunction>
+<FuncName>More</FuncName>
+     <PyFunc><![CDATA[def More( A ):   ]]></PyFunc>
+     <PyFunc><![CDATA[  if A < 10:   ]]></PyFunc>
+     <PyFunc><![CDATA[    return 1,A   ]]></PyFunc>
+     <PyFunc><![CDATA[  return 0,A   ]]></PyFunc>    </PyFunction>
+    <PyFunction>
+<FuncName>Next</FuncName>
+     <PyFunc><![CDATA[def Next( A ):   ]]></PyFunc>
+     <PyFunc><![CDATA[  return (A + 1)   ]]></PyFunc>    </PyFunction>   </PyFunction-list>
+   <creation-date>2/4/2004 - 18:30:31</creation-date>
+   <lastmodification-date>2/4/2004 - 18:30:31</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>118</x-position>
+   <y-position>160</y-position>  </node>
+  <node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>EndInit</node-name>
+   <kind>5</kind>
+   <coupled-node>Init</coupled-node>
+   <service>
+<service-name>EndInit</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>int</inParameter-type>
+      <inParameter-name>A</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>int</outParameter-type>
+      <outParameter-name>A</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <Parameter-list/>
+   <PyFunction-list>
+<PyFunction>
+<FuncName>EndInit</FuncName>
+     <PyFunc><![CDATA[?]]></PyFunc>    </PyFunction>   </PyFunction-list>
+   <creation-date>2/4/2004 - 18:30:31</creation-date>
+   <lastmodification-date>2/4/2004 - 18:30:31</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>740</x-position>
+   <y-position>168</y-position>  </node>
+  <node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>Func</node-name>
+   <kind>3</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>Func</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>int</inParameter-type>
+      <inParameter-name>A</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>int</outParameter-type>
+      <outParameter-name>B</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <Parameter-list/>
+   <PyFunction-list>
+<PyFunction>
+<FuncName>Func</FuncName>
+     <PyFunc><![CDATA[def Func( A ):     ]]></PyFunc>
+     <PyFunc><![CDATA[  import batchmode_visu  ]]></PyFunc>
+     <PyFunc><![CDATA[  batchmode_visu.myVisu.CreateTestView()   ]]></PyFunc>
+     <PyFunc><![CDATA[  batchmode_visu.myVisu.ShowTestObject()   ]]></PyFunc>
+     <PyFunc><![CDATA[  return A     ]]></PyFunc>    </PyFunction>   </PyFunction-list>
+   <creation-date>2/4/2004 - 18:30:31</creation-date>
+   <lastmodification-date>2/4/2004 - 18:30:31</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>Compute Node</comment>
+   <x-position>375</x-position>
+   <y-position>162</y-position>  </node> </node-list>
+ <link-list>
+<link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+   <tonode-name>EndInit</tonode-name>
+   <toserviceparameter-name>DoLoop</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>A</fromserviceparameter-name>
+   <tonode-name>Func</tonode-name>
+   <toserviceparameter-name>A</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>EndInit</fromnode-name>
+   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>InitLoop</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Func</fromnode-name>
+   <fromserviceparameter-name>B</fromserviceparameter-name>
+   <tonode-name>EndInit</tonode-name>
+   <toserviceparameter-name>A</toserviceparameter-name>
+   <coord-list/>  </link> </link-list>
+ <data-list>
+<data>
+<fromnode-name>aNewDataFlow</fromnode-name>
+   <fromserviceparameter-name>Init\A</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>A</toserviceparameter-name>
+   <data-value>
+<value-type>3</value-type>
+    <value>0</value>   </data-value>
+   <coord-list/>  </data> </data-list></dataflow>
diff --git a/examples/testvisu20.xml b/examples/testvisu20.xml
new file mode 100644 (file)
index 0000000..7d8e60e
--- /dev/null
@@ -0,0 +1,490 @@
+<!DOCTYPE Dataflow>
+<dataflow>
+<info-list>
+<node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>aNewDataFlow</node-name>
+   <kind>1</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>aNewDataFlow</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Init\index</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Init\min</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>Init\max</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>Init\x1</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>EndOfInit\index</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>EndOfInit\min</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>EndOfInit\max</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>EndOfInit\aVisu</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>EndOfInit\aView</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>EndOfInit\aResult</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>EndOfInit\x1</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <Parameter-list/>
+   <PyFunction-list/>
+   <creation-date>13/11/2003 - 11:15:53</creation-date>
+   <lastmodification-date>19/1/2004 - 15:33:34</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>0</x-position>
+   <y-position>0</y-position>  </node> </info-list>
+ <node-list>
+<node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>InitDisplay</node-name>
+   <kind>3</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>InitDisplay</service-name>
+    <inParameter-list/>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>aVisu</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>aView</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>myResult</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <Parameter-list/>
+   <PyFunction-list>
+<PyFunction>
+<FuncName>InitDisplay</FuncName>
+     <PyFunc><![CDATA[import os         ]]></PyFunc>
+     <PyFunc><![CDATA[import time         ]]></PyFunc>
+     <PyFunc><![CDATA[from LifeCycleCORBA import *      ]]></PyFunc>
+     <PyFunc><![CDATA[from SALOME_NamingServicePy import *      ]]></PyFunc>
+     <PyFunc><![CDATA[import SALOMEDS      ]]></PyFunc>
+     <PyFunc><![CDATA[from VISU import *      ]]></PyFunc>
+     <PyFunc><![CDATA[def InitDisplay():         ]]></PyFunc>
+     <PyFunc><![CDATA[    #  --- initialize the ORB        ]]></PyFunc>
+     <PyFunc><![CDATA[    orb = CORBA.ORB_init([], CORBA.ORB_ID)      ]]></PyFunc>
+     <PyFunc><![CDATA[    # --- create a LifeCycleCORBA instance           ]]></PyFunc>
+     <PyFunc><![CDATA[    lcc = LifeCycleCORBA(orb)                     ]]></PyFunc>
+     <PyFunc><![CDATA[    # --- create a naming service instance              ]]></PyFunc>
+     <PyFunc><![CDATA[    naming_service = SALOME_NamingServicePy_i(orb)    ]]></PyFunc>
+     <PyFunc><![CDATA[    # --- get Study Manager reference                     ]]></PyFunc>
+     <PyFunc><![CDATA[    obj = naming_service.Resolve('myStudyManager')    ]]></PyFunc>
+     <PyFunc><![CDATA[    StudyManager = obj._narrow(SALOMEDS.StudyManager)    ]]></PyFunc>
+     <PyFunc><![CDATA[    # --- load visu component                          ]]></PyFunc>
+     <PyFunc><![CDATA[    aVisu = lcc.FindOrLoadComponent("FactoryServer","VISU")       ]]></PyFunc>
+     <PyFunc><![CDATA[    aStudy = StudyManager.GetStudyByID(1)      ]]></PyFunc>
+     <PyFunc><![CDATA[    aVisu.SetCurrentStudy(aStudy)      ]]></PyFunc>
+     <PyFunc><![CDATA[    print "InitDisplay --> aVisu ", aVisu         ]]></PyFunc>
+     <PyFunc><![CDATA[    time.sleep(2)         ]]></PyFunc>
+     <PyFunc><![CDATA[    aViewManager=aVisu.GetViewManager()         ]]></PyFunc>
+     <PyFunc><![CDATA[    print "InitDisplay --> aViewManager ", aViewManager         ]]></PyFunc>
+     <PyFunc><![CDATA[    #time.sleep(2)         ]]></PyFunc>
+     <PyFunc><![CDATA[    #aView=aViewManager.GetCurrentView()         ]]></PyFunc>
+     <PyFunc><![CDATA[    aView=aViewManager.Create3DView()         ]]></PyFunc>
+     <PyFunc><![CDATA[    print "InitDisplay --> aView ", aView         ]]></PyFunc>
+     <PyFunc><![CDATA[    #time.sleep(2)         ]]></PyFunc>
+     <PyFunc><![CDATA[    medFile = "TimeStamps.med"       ]]></PyFunc>
+     <PyFunc><![CDATA[    medFile = os.getenv('KERNEL_ROOT_DIR') + '/examples/' + medFile       ]]></PyFunc>
+     <PyFunc><![CDATA[    myResult = aVisu.ImportFile(medFile)       ]]></PyFunc>
+     <PyFunc><![CDATA[    print "InitDisplay --> myResult ", myResult         ]]></PyFunc>
+     <PyFunc><![CDATA[    return aVisu,aView,myResult       ]]></PyFunc>
+     <PyFunc><![CDATA[?]]></PyFunc>    </PyFunction>   </PyFunction-list>
+   <creation-date>19/1/2004 - 15:33:34</creation-date>
+   <lastmodification-date>19/1/2004 - 15:33:34</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>Compute Node</comment>
+   <x-position>0</x-position>
+   <y-position>46</y-position>  </node>
+  <node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>Init</node-name>
+   <kind>4</kind>
+   <coupled-node>EndOfInit</coupled-node>
+   <service>
+<service-name>Init</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>index</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>min</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>max</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>objref</inParameter-type>
+      <inParameter-name>aVisu</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>objref</inParameter-type>
+      <inParameter-name>aView</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>objref</inParameter-type>
+      <inParameter-name>aResult</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x1</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>index</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>min</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>max</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>aVisu</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>aView</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>aResult</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>x1</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <Parameter-list/>
+   <PyFunction-list>
+<PyFunction>
+<FuncName>Init</FuncName>
+     <PyFunc><![CDATA[def Init(index,min,max,aVisu,aView,myResult,x1):   ]]></PyFunc>
+     <PyFunc><![CDATA[    if max >= min :   ]]></PyFunc>
+     <PyFunc><![CDATA[        index = min      ]]></PyFunc>
+     <PyFunc><![CDATA[    else :     ]]></PyFunc>
+     <PyFunc><![CDATA[        index = max  ]]></PyFunc>
+     <PyFunc><![CDATA[    print "---- Init ",index,min,max,aVisu,aView,myResult,x1 ]]></PyFunc>
+     <PyFunc><![CDATA[    return index,min,max,aVisu,aView,myResult,x1  ]]></PyFunc>    </PyFunction>
+    <PyFunction>
+<FuncName>More</FuncName>
+     <PyFunc><![CDATA[def More(index,min,max,aVisu,aView,myResult,x1):   ]]></PyFunc>
+     <PyFunc><![CDATA[    if max >= index :       ]]></PyFunc>
+     <PyFunc><![CDATA[        DoLoop = 1       ]]></PyFunc>
+     <PyFunc><![CDATA[    else :       ]]></PyFunc>
+     <PyFunc><![CDATA[        DoLoop = 0       ]]></PyFunc>
+     <PyFunc><![CDATA[    print "---- More",index,min,max,aVisu,aView,myResult,x1 ]]></PyFunc>
+     <PyFunc><![CDATA[    return DoLoop,index,min,max,aVisu,aView,myResult,x1   ]]></PyFunc>    </PyFunction>
+    <PyFunction>
+<FuncName>Next</FuncName>
+     <PyFunc><![CDATA[def Next(index,min,max,aVisu,aView,myResult,x1):   ]]></PyFunc>
+     <PyFunc><![CDATA[    index = index + 1 ]]></PyFunc>
+     <PyFunc><![CDATA[    x1=x1+1.0 ]]></PyFunc>
+     <PyFunc><![CDATA[    print "---- Next",index,min,max,aVisu,aView,myResult,x1   ]]></PyFunc>
+     <PyFunc><![CDATA[    return index,min,max,aVisu,aView,myResult,x1   ]]></PyFunc>    </PyFunction>   </PyFunction-list>
+   <creation-date>19/1/2004 - 15:33:34</creation-date>
+   <lastmodification-date>19/1/2004 - 15:33:34</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>190</x-position>
+   <y-position>4</y-position>  </node>
+  <node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>EndOfInit</node-name>
+   <kind>5</kind>
+   <coupled-node>Init</coupled-node>
+   <service>
+<service-name>EndOfInit</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>index</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>min</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>long</inParameter-type>
+      <inParameter-name>max</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>objref</inParameter-type>
+      <inParameter-name>aVisu</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>objref</inParameter-type>
+      <inParameter-name>aView</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>objref</inParameter-type>
+      <inParameter-name>aResult</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x1</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>index</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>min</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>long</outParameter-type>
+      <outParameter-name>max</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>aVisu</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>aView</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>aResult</outParameter-name>     </outParameter>
+     <outParameter>
+<outParameter-type>double</outParameter-type>
+      <outParameter-name>x1</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <Parameter-list/>
+   <PyFunction-list>
+<PyFunction/>   </PyFunction-list>
+   <creation-date>19/1/2004 - 15:33:34</creation-date>
+   <lastmodification-date>19/1/2004 - 15:33:34</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>?</comment>
+   <x-position>553</x-position>
+   <y-position>5</y-position>  </node>
+  <node>
+<component-name>?</component-name>
+   <interface-name>?</interface-name>
+   <node-name>DisplayVitesse</node-name>
+   <kind>3</kind>
+   <coupled-node>?</coupled-node>
+   <service>
+<service-name>DisplayVitesse</service-name>
+    <inParameter-list>
+<inParameter>
+<inParameter-type>string</inParameter-type>
+      <inParameter-name>index</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>objref</inParameter-type>
+      <inParameter-name>aVisu</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>objref</inParameter-type>
+      <inParameter-name>aView</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>objref</inParameter-type>
+      <inParameter-name>aResult</inParameter-name>     </inParameter>
+     <inParameter>
+<inParameter-type>double</inParameter-type>
+      <inParameter-name>x1</inParameter-name>     </inParameter>    </inParameter-list>
+    <outParameter-list>
+<outParameter>
+<outParameter-type>objref</outParameter-type>
+      <outParameter-name>theResult</outParameter-name>     </outParameter>    </outParameter-list>   </service>
+   <Parameter-list/>
+   <PyFunction-list>
+<PyFunction>
+<FuncName>DisplayVitesse</FuncName>
+     <PyFunc><![CDATA[import VISU                               ]]></PyFunc>
+     <PyFunc><![CDATA[import os                               ]]></PyFunc>
+     <PyFunc><![CDATA[import time                               ]]></PyFunc>
+     <PyFunc><![CDATA[def DisplayVitesse(index,aVisu,aView,aResult,x1):                          ]]></PyFunc>
+     <PyFunc><![CDATA[    print "----- Display 1 index = ", index,aVisu,aView,aResult,x1                    ]]></PyFunc>
+     <PyFunc><![CDATA[    aMeshName ="dom"                               ]]></PyFunc>
+     <PyFunc><![CDATA[    myFieldName = "vitesse"                     ]]></PyFunc>
+     <PyFunc><![CDATA[    anEntity = VISU.NODE                               ]]></PyFunc>
+     <PyFunc><![CDATA[    aMesh = aVisu.MeshOnEntity(aResult, aMeshName, anEntity)     ]]></PyFunc>
+     <PyFunc><![CDATA[    print "----- Display 2 ", aMesh                 ]]></PyFunc>
+     <PyFunc><![CDATA[    aScalarMap=aVisu.ScalarMapOnField(aResult,aMeshName,anEntity,myFieldName,x1)  ]]></PyFunc>
+     <PyFunc><![CDATA[    print "----- Display 4"                         ]]></PyFunc>
+     <PyFunc><![CDATA[    if aScalarMap is not None:                               ]]></PyFunc>
+     <PyFunc><![CDATA[        aScalarMap.SetScaling(VISU.LINEAR)                               ]]></PyFunc>
+     <PyFunc><![CDATA[    else:                               ]]></PyFunc>
+     <PyFunc><![CDATA[        print "Null scalar map is created"                               ]]></PyFunc>
+     <PyFunc><![CDATA[    print "----- Display 5"           ]]></PyFunc>
+     <PyFunc><![CDATA[    aView.DisplayOnly(aScalarMap)                               ]]></PyFunc>
+     <PyFunc><![CDATA[    aView.FitAll()                               ]]></PyFunc>
+     <PyFunc><![CDATA[    aView.Update()                              ]]></PyFunc>
+     <PyFunc><![CDATA[    print "----- Display 6"                         ]]></PyFunc>
+     <PyFunc><![CDATA[    theResult=aResult                           ]]></PyFunc>
+     <PyFunc><![CDATA[    #time.sleep(2)                   ]]></PyFunc>
+     <PyFunc><![CDATA[    return theResult                    ]]></PyFunc>
+     <PyFunc><![CDATA[?]]></PyFunc>    </PyFunction>   </PyFunction-list>
+   <creation-date>19/1/2004 - 15:33:34</creation-date>
+   <lastmodification-date>19/1/2004 - 15:33:34</lastmodification-date>
+   <editor-release>1.05</editor-release>
+   <author>?</author>
+   <container>?</container>
+   <comment>Compute Node</comment>
+   <x-position>374</x-position>
+   <y-position>16</y-position>  </node> </node-list>
+ <link-list>
+<link>
+<fromnode-name>InitDisplay</fromnode-name>
+   <fromserviceparameter-name>aVisu</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>aVisu</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>InitDisplay</fromnode-name>
+   <fromserviceparameter-name>aView</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>aView</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>InitDisplay</fromnode-name>
+   <fromserviceparameter-name>myResult</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>aResult</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+   <tonode-name>EndOfInit</tonode-name>
+   <toserviceparameter-name>DoLoop</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>index</fromserviceparameter-name>
+   <tonode-name>EndOfInit</tonode-name>
+   <toserviceparameter-name>index</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>index</fromserviceparameter-name>
+   <tonode-name>DisplayVitesse</tonode-name>
+   <toserviceparameter-name>index</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>351</x>
+     <y>96</y>    </coord>
+    <coord>
+<x>350</x>
+     <y>38</y>    </coord>   </coord-list>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>min</fromserviceparameter-name>
+   <tonode-name>EndOfInit</tonode-name>
+   <toserviceparameter-name>min</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>max</fromserviceparameter-name>
+   <tonode-name>EndOfInit</tonode-name>
+   <toserviceparameter-name>max</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>aVisu</fromserviceparameter-name>
+   <tonode-name>EndOfInit</tonode-name>
+   <toserviceparameter-name>aVisu</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>aVisu</fromserviceparameter-name>
+   <tonode-name>DisplayVitesse</tonode-name>
+   <toserviceparameter-name>aVisu</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>aView</fromserviceparameter-name>
+   <tonode-name>EndOfInit</tonode-name>
+   <toserviceparameter-name>aView</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>aView</fromserviceparameter-name>
+   <tonode-name>DisplayVitesse</tonode-name>
+   <toserviceparameter-name>aView</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>aResult</fromserviceparameter-name>
+   <tonode-name>DisplayVitesse</tonode-name>
+   <toserviceparameter-name>aResult</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>x1</fromserviceparameter-name>
+   <tonode-name>EndOfInit</tonode-name>
+   <toserviceparameter-name>x1</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>Init</fromnode-name>
+   <fromserviceparameter-name>x1</fromserviceparameter-name>
+   <tonode-name>DisplayVitesse</tonode-name>
+   <toserviceparameter-name>x1</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>EndOfInit</fromnode-name>
+   <fromserviceparameter-name>DoLoop</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>InitLoop</toserviceparameter-name>
+   <coord-list/>  </link>
+  <link>
+<fromnode-name>DisplayVitesse</fromnode-name>
+   <fromserviceparameter-name>theResult</fromserviceparameter-name>
+   <tonode-name>EndOfInit</tonode-name>
+   <toserviceparameter-name>aResult</toserviceparameter-name>
+   <coord-list>
+<coord>
+<x>548</x>
+     <y>183</y>    </coord>
+    <coord>
+<x>548</x>
+     <y>97</y>    </coord>   </coord-list>  </link> </link-list>
+ <data-list>
+<data>
+<fromnode-name>aNewDataFlow</fromnode-name>
+   <fromserviceparameter-name>Init\index</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>index</toserviceparameter-name>
+   <data-value>
+<value-type>3</value-type>
+    <value>1</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>aNewDataFlow</fromnode-name>
+   <fromserviceparameter-name>Init\min</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>min</toserviceparameter-name>
+   <data-value>
+<value-type>3</value-type>
+    <value>1</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>aNewDataFlow</fromnode-name>
+   <fromserviceparameter-name>Init\max</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>max</toserviceparameter-name>
+   <data-value>
+<value-type>3</value-type>
+    <value>100</value>   </data-value>
+   <coord-list/>  </data>
+  <data>
+<fromnode-name>aNewDataFlow</fromnode-name>
+   <fromserviceparameter-name>Init\x1</fromserviceparameter-name>
+   <tonode-name>Init</tonode-name>
+   <toserviceparameter-name>x1</toserviceparameter-name>
+   <data-value>
+<value-type>7</value-type>
+    <value>1</value>   </data-value>
+   <coord-list/>  </data> </data-list></dataflow>
index 394710b9da2e466cecf82190236295ca85ebec8d..e0893ba04e32179265cc4264fda88935287bc5c0 100644 (file)
@@ -49,13 +49,14 @@ using namespace std;
 
 
 int SUPERVGUI::factory = 0;
-SUPERVGUI Supervision;
+SUPERVGUI Supervision("");
 
 
-SUPERVGUI::SUPERVGUI(): QObject(),
-                       desktop(0),
-                       study(0),
-                       browser(0)
+SUPERVGUI::SUPERVGUI(const QString& theName, QObject* theParent)
+     : SALOMEGUI( theName, theParent ),
+       desktop(0),
+       study(0),
+       browser(0)
   //info(0)
 {
     Trace("SUPERVGUI::SUPERVGUI")
@@ -445,8 +446,10 @@ void SUPERVGUI::showComponents() {
   }
 }
 
-void SUPERVGUI::customPopup(QPopupMenu* popup) {
+
+bool SUPERVGUI::CustomPopup(QAD_Desktop* parent, QPopupMenu* popup, const QString& theContext, const QString& theParent, const QString& theObject) {
   Trace("SUPERVGUI::customPopup");
+  Supervision.init(parent);
   if(popup->count() > 3) {
     // Temporary code: is to be deleted soon
     popup->removeItem(QAD_Display_Popup_ID);
@@ -457,7 +460,7 @@ void SUPERVGUI::customPopup(QPopupMenu* popup) {
     // Temporary code end
   }
     SALOME_Selection* Sel = SALOME_Selection::Selection(study->getSelection() );
-    if ((Sel==NULL) || (Sel->IObjectCount() == 0)) return;
+    if ((Sel==NULL) || (Sel->IObjectCount() == 0)) return false;
 
     if (Sel->IObjectCount() == 1) {
       Handle(SALOME_InteractiveObject) anIObj = Sel->firstIObject();
@@ -488,6 +491,7 @@ void SUPERVGUI::customPopup(QPopupMenu* popup) {
       if (aIObjCount == Sel->IObjectCount())  //all selected objects belong to Supervision
        popup->insertItem(tr("MSG_DELETE"), this, SLOT(deleteObject()));
     }
+  return(true);
 }
 
  
@@ -577,105 +581,81 @@ void SUPERVGUI::deleteObject() {
   Sel->ClearIObjects() ; 
 }
 
-
-
-void SUPERVGUI::activeStudyChanged() {
-  Trace("SUPERVGUI::activeStudyChanged");
-  study = desktop->getActiveStudy();
-}
-
-extern "C" bool OnGUIEvent(int command, QAD_Desktop* parent) {
-    Supervision.init(parent);
-    switch (command) {
-        case 301: 
-            Supervision.importDataflow();
-            return(false);
-        
-        case 302: 
-            Supervision.exportDataflow();
-            return(false);
-        
-        case 303: 
-            Supervision.newDataflow();
-            return(false);
-        
-        case 304: 
-            Supervision.modifyDataflow();
-            return(false);
-        
-        case 305:
-            Supervision.reloadDataflow();
-            return(false);
-        
-        case 306:
-            Supervision.runDataflow();
-            return(false);
-        
-        case 307: 
-            Supervision.killDataflow();
-            return(false);
-        
-        case 308:
-            Supervision.suspendResumeDataflow();
-            return(false);
-        
-        case 309: 
-            Supervision.showComponents();
-            return(false);
-        
-        case 310: 
-            Supervision.stepByStep();
-            return(false);
-        
-        default: 
-            QMessageBox::warning(QAD_Application::getDesktop(), "Supervision Error", "Unknown Command From Salome");
-            return(false);
-        
-    }
-}
-
-extern "C" bool OnKeyPress(QKeyEvent* e, QAD_Desktop* parent, SUPERVGUI_Main* s) {
+bool SUPERVGUI::OnGUIEvent(int command, QAD_Desktop* parent) {
+  Supervision.init(parent);
+  switch (command) {
+  case 301: 
+    Supervision.importDataflow();
     return(false);
-}
-
-extern "C" bool OnMousePress(QMouseEvent* e, QAD_Desktop* parent, SUPERVGUI_Main* s) {
+    
+  case 302: 
+    Supervision.exportDataflow();
     return(false);
-}
-
-extern "C" bool OnMouseMove(QMouseEvent* e, QAD_Desktop* parent, SUPERVGUI_Main* s) {
+    
+  case 303: 
+    Supervision.newDataflow();
     return(false);
-}
-
-extern "C" bool OnPopupGUIEvent(int theCommandID, QAD_Desktop* parent) {
+    
+  case 304: 
+    Supervision.modifyDataflow();
     return(false);
+    
+  case 305:
+    Supervision.reloadDataflow();
+    return(false);
+    
+  case 306:
+    Supervision.runDataflow();
+    return(false);
+    
+  case 307: 
+    Supervision.killDataflow();
+    return(false);
+    
+  case 308:
+    Supervision.suspendResumeDataflow();
+    return(false);
+    
+  case 309: 
+    Supervision.showComponents();
+    return(false);
+    
+  case 310: 
+    Supervision.stepByStep();
+    return(false);
+    
+  default: 
+    QMessageBox::warning(QAD_Application::getDesktop(), "Supervision Error", "Unknown Command From Salome");
+    return(false);
+  }
 }
 
-extern "C" bool SetSettings(QAD_Desktop* parent) {
-    Trace("extern SUPERVGUI::SetSettings")
-    Supervision.init(parent);
-    return(true);
-}
-
-extern "C" void definePopup(QString& theContext, QString& theParent, QString& theObject) {
-    theObject  = "";
-    theContext = "";
+bool SUPERVGUI::SetSettings(QAD_Desktop* parent) {
+  Trace("SUPERVGUI::SetSettings");
+  Supervision.init(parent);
+  return(true);
 }
 
-extern "C" bool customPopup(QAD_Desktop* parent, QPopupMenu* popup, const QString& theContext, const QString& theParent, const QString& theObject) {
-    Supervision.init(parent);
-    Supervision.customPopup(popup);
-    return(true);
+void SUPERVGUI::DefinePopup(QString& theContext, QString& theParent, QString& theObject) {
+  theObject  = "";
+  theContext = "";
 }
 
-extern "C" void activeStudyChanged(QAD_Desktop* parent) {
-    Supervision.activeStudyChanged();
+bool SUPERVGUI::ActiveStudyChanged(QAD_Desktop* parent) {
+  Trace("SUPERVGUI::activeStudyChanged");
+  study = desktop->getActiveStudy();
+  return true;
 }
 
-extern "C" int supportedViewType()
+void SUPERVGUI::SupportedViewType (int* buffer, int bufferSize)
 {
-  return (int)VIEW_GRAPHSUPERV;
+  if (!buffer || !bufferSize) return;
+  buffer[0] = (int)VIEW_GRAPHSUPERV;
 }
 
-extern "C" void buildPresentation ( const Handle(SALOME_InteractiveObject)& theIO )
+extern "C"
 {
+  Standard_EXPORT SALOMEGUI* GetComponentGUI() {
+    return &Supervision;
+  }
 }
index 3bf460606e3d5a5c35a22f44a226ebde1ed510ff..977e71950a4604695d7cc88621c06eea5ec9faba 100644 (file)
@@ -28,7 +28,7 @@
 #ifndef SUPERVGUI_H
 #define SUPERVGUI_H
 
-// Acces a l'ihm de SALOME
+// Acces a l`ihm de SALOME
 // -----------------------
 
 #include "QAD_Desktop.h"
 #include "SUPERVGUI_Main.h"
 //#include "SUPERVGUI_Information.h"
 
+#include "SALOMEGUI.h"
 
 // Definition de la classe principale du module de supervision
 // -----------------------------------------------------------
 
-class SUPERVGUI: public QObject {
+class SUPERVGUI: public SALOMEGUI {
   Q_OBJECT
 
   public:
-    SUPERVGUI();
+    SUPERVGUI( const QString&, QObject* = 0 );
     virtual ~SUPERVGUI();
 
     QAD_Desktop*       getDesktop();
@@ -73,8 +74,19 @@ class SUPERVGUI: public QObject {
 
     void init(QAD_Desktop* parent);
     SUPERVGUI_Main* getMain();
-    void customPopup(QPopupMenu* popup);
-    void activeStudyChanged();
+
+    bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
+    bool SetSettings(QAD_Desktop* parent);
+    void DefinePopup(QString & theContext,
+                     QString & theParent, 
+                     QString & theObject ) ;
+    bool CustomPopup(QAD_Desktop* parent,
+                     QPopupMenu* popup,
+                     const QString & theContext,
+                     const QString & theParent,
+                     const QString & theObject);
+    bool ActiveStudyChanged( QAD_Desktop* parent );
+    void SupportedViewType (int* buffer, int bufferSize);
 
     bool isContains(QAD_Study* theStudy, const QString theKey);