Salome HOME
NRI : Add documentation.
[modules/superv.git] / examples / GraphSyracuseCpp.py
1
2 # Generated python file of Graph GraphSyracuseCpp
3
4 from SuperV import *
5 # Graph creation 
6 GraphSyracuseCpp = Graph( 'GraphSyracuseCpp' )
7 GraphSyracuseCpp.SetName( 'GraphSyracuseCpp' )
8 GraphSyracuseCpp.SetAuthor( 'JR' )
9 GraphSyracuseCpp.SetComment( 'Syracuse algorithm' )
10 GraphSyracuseCpp.Coords( 0 , 0 )
11
12 # Creation of Computing Nodes
13 Syracuse = GraphSyracuseCpp.Node( 'SyrComponent' , 'SyrComponent' , 'Init' )
14 Syracuse.SetName( 'Syracuse' )
15 Syracuse.SetAuthor( '' )
16 #Syracuse.SetContainer( 'localhost/FactoryServer' )
17 Syracuse.SetComment( '' )
18 Syracuse.Coords( 9 , 207 )
19 test_IsEven = GraphSyracuseCpp.CNode( 'SyrComponent' , 'Syr' , 'IsEven' )
20 test_IsEven.SetName( 'test_IsEven' )
21 test_IsEven.SetAuthor( '' )
22 #test_IsEven.SetContainer( 'localhost/FactoryServer' )
23 test_IsEven.SetComment( '' )
24 test_IsEven.Coords( 197 , 407 )
25 test_IsOne = GraphSyracuseCpp.CNode( 'SyrComponent' , 'Syr' , 'IsOne' )
26 test_IsOne.SetName( 'test_IsOne' )
27 test_IsOne.SetAuthor( '' )
28 #test_IsOne.SetContainer( 'localhost/FactoryServer' )
29 test_IsOne.SetComment( '' )
30 test_IsOne.Coords( 208 , 59 )
31 m3p1_M3p1 = GraphSyracuseCpp.CNode( 'SyrComponent' , 'Syr' , 'M3p1' )
32 m3p1_M3p1.SetName( 'm3p1_M3p1' )
33 m3p1_M3p1.SetAuthor( '' )
34 #m3p1_M3p1.SetContainer( 'localhost/FactoryServer' )
35 m3p1_M3p1.SetComment( '' )
36 m3p1_M3p1.Coords( 418 , 408 )
37 div2_Div2 = GraphSyracuseCpp.CNode( 'SyrComponent' , 'Syr' , 'Div2' )
38 div2_Div2.SetName( 'div2_Div2' )
39 div2_Div2.SetAuthor( '' )
40 #div2_Div2.SetContainer( 'localhost/FactoryServer' )
41 div2_Div2.SetComment( '' )
42 div2_Div2.Coords( 414 , 10 )
43 incr_Incr = GraphSyracuseCpp.CNode( 'SyrComponent' , 'Syr' , 'Incr' )
44 incr_Incr.SetName( 'incr_Incr' )
45 incr_Incr.SetAuthor( '' )
46 #incr_Incr.SetContainer( 'localhost/FactoryServer' )
47 incr_Incr.SetComment( '' )
48 incr_Incr.Coords( 416 , 207 )
49 result_Current = GraphSyracuseCpp.CNode( 'SyrComponent' , 'Syr' , 'Current' )
50 result_Current.SetName( 'result_Current' )
51 result_Current.SetAuthor( '' )
52 #result_Current.SetContainer( 'localhost/FactoryServer' )
53 result_Current.SetComment( '' )
54 result_Current.Coords( 603 , 216 )
55 result_Count = GraphSyracuseCpp.CNode( 'SyrComponent' , 'Syr' , 'Count' )
56 result_Count.SetName( 'result_Count' )
57 result_Count.SetAuthor( '' )
58 #result_Count.SetContainer( 'localhost/FactoryServer' )
59 result_Count.SetComment( '' )
60 result_Count.Coords( 803 , 212 )
61
62 # Creation of intermediate Output variables and of Computing Links
63 SyracuseaSyracuse = Syracuse.Port( 'aSyracuse' )
64 test_IsEvenaSyracuse = GraphSyracuseCpp.Link( SyracuseaSyracuse , test_IsEven.Port( 'aSyracuse' ) )
65 test_IsEvenaSyracuse.AddCoord( 1 , 175 , 559 )
66 test_IsEvenaSyracuse.AddCoord( 2 , 175 , 359 )
67 test_IsOneaSyracuse = GraphSyracuseCpp.Link( SyracuseaSyracuse , test_IsOne.Port( 'aSyracuse' ) )
68 test_IsOneaSyracuse.AddCoord( 1 , 177 , 211 )
69 test_IsOneaSyracuse.AddCoord( 2 , 177 , 359 )
70 m3p1_M3p1aSyracuse = GraphSyracuseCpp.Link( SyracuseaSyracuse , m3p1_M3p1.Port( 'aSyracuse' ) )
71 m3p1_M3p1aSyracuse.AddCoord( 1 , 388 , 560 )
72 m3p1_M3p1aSyracuse.AddCoord( 2 , 388 , 359 )
73 div2_Div2aSyracuse = GraphSyracuseCpp.Link( SyracuseaSyracuse , div2_Div2.Port( 'aSyracuse' ) )
74 div2_Div2aSyracuse.AddCoord( 1 , 389 , 162 )
75 div2_Div2aSyracuse.AddCoord( 2 , 389 , 359 )
76 incr_IncraSyracuse = GraphSyracuseCpp.Link( SyracuseaSyracuse , incr_Incr.Port( 'aSyracuse' ) )
77 result_CurrentaSyracuse = GraphSyracuseCpp.Link( SyracuseaSyracuse , result_Current.Port( 'aSyracuse' ) )
78 result_CurrentaSyracuse.AddCoord( 1 , 590 , 368 )
79 result_CurrentaSyracuse.AddCoord( 2 , 590 , 390 )
80 result_CurrentaSyracuse.AddCoord( 3 , 388 , 390 )
81 result_CurrentaSyracuse.AddCoord( 4 , 388 , 359 )
82 result_CountaSyracuse = GraphSyracuseCpp.Link( SyracuseaSyracuse , result_Count.Port( 'aSyracuse' ) )
83 result_CountaSyracuse.AddCoord( 1 , 785 , 364 )
84 result_CountaSyracuse.AddCoord( 2 , 785 , 391 )
85 result_CountaSyracuse.AddCoord( 3 , 389 , 391 )
86 result_CountaSyracuse.AddCoord( 4 , 389 , 357 )
87
88 # Missing Input datas
89 SyracuseanOddInteger = Syracuse.Input( 'anOddInteger' , 7 )
90
91 # Creation of Output variables
92 test_IsEvenBoolEven = test_IsEven.Port( 'BoolEven' )
93 test_IsOneBoolOne = test_IsOne.Port( 'BoolOne' )
94 count_incr_Incr = incr_Incr.Port('aSyracuse')
95 result_CurrentaCurrent = result_Current.Port( 'aCurrent' )
96
97 GraphSyracuseCpp.IsValid()
98 GraphSyracuseCpp.LevelMax()
99 GraphSyracuseCpp.ThreadsMax()
100
101 exec GraphSyracuseCpp.ListNodes()
102 SyracuseanOddInteger = Syracuse.Input( 'anOddInteger' , 7 )
103 test_IsEvenBoolEven = test_IsEven.Port( 'BoolEven' )
104 test_IsOneBoolOne = test_IsOne.Port( 'BoolOne' )
105 count_incr_Incr = incr_Incr.Port('aSyracuse')
106 result_CurrentaCurrent = result_Current.Port( 'aCurrent' )
107
108
109 GraphSyracuseCpp.Start( 7 )
110
111 # Suspend des nodes de tete de Syr
112 sts = test_IsOne.Suspend()
113 sts = test_IsEven.Suspend()
114 sts = m3p1_M3p1.Suspend()
115 sts = div2_Div2.Suspend()
116 sts = incr_Incr.Suspend()
117 sts = result_Current.Suspend()
118 sts = result_Count.Suspend()
119
120 # Ex\81écution du node de tete
121 sts = Syracuse.Resume()
122 sts = Syracuse.DoneW()
123
124 # Attente de suspension de test et demandes de suspension apr\81ès ex\81écution
125 sts = test_IsOne.SuspendedW()
126 sts = test_IsOne.SuspendDone()
127 sts = test_IsEven.SuspendedW()
128 sts = test_IsEven.SuspendDone()
129
130 # Ex\81écution de test avec la valeur de d\81épart
131 sts = test_IsOne.Resume()
132 sts = test_IsEven.Resume()
133
134 # Attentes de suspension de m3p1, div2, incr et result.
135 # Puis demandes de suspension apr\81ès ex\81écution
136 sts = m3p1_M3p1.SuspendedW()
137 sts = div2_Div2.SuspendedW()
138 sts = incr_Incr.SuspendedW()
139 sts = result_Current.SuspendedW()
140 sts = result_Count.SuspendedW()
141 sts = m3p1_M3p1.SuspendDone()
142 sts = div2_Div2.SuspendDone()
143 sts = incr_Incr.SuspendDone()
144 sts = result_Current.SuspendDone()
145
146 # Attente de fin d'ex\81écution de test
147 sts = test_IsOne.SuspendedW()
148 sts = test_IsEven.SuspendedW()
149
150 GraphSyracuseCpp.PrintThreads()
151
152 IsOneBoolOne = test_IsOneBoolOne.ToString()
153 while int( IsOneBoolOne ) == 0 :
154     IsEvenBoolEven = test_IsEvenBoolEven.ToString()
155     if int( IsEvenBoolEven ) == 0 :
156         sts = m3p1_M3p1.ReRun()
157         sts = incr_Incr.ReRun()
158         sts = m3p1_M3p1.SuspendedW()
159         sts = result_Current.ReRun()
160         sts = test_IsOne.ReRun()
161         sts = test_IsEven.ReRun()
162         sts = test_IsOne.SuspendedW()
163         sts = test_IsEven.SuspendedW()
164         sts = incr_Incr.SuspendedW()
165         sts = result_Current.SuspendedW()
166         print "m3p1_M3p1",result_CurrentaCurrent.ToString(),IsEvenBoolEven
167     IsEvenBoolEven = test_IsEvenBoolEven.ToString()
168     while int( IsEvenBoolEven ) == 1 :
169         sts = div2_Div2.ReRun()
170         sts = incr_Incr.ReRun()
171         sts = div2_Div2.SuspendedW()
172         sts = result_Current.ReRun()
173         sts = test_IsOne.ReRun()
174         sts = test_IsEven.ReRun()
175         sts = test_IsOne.SuspendedW()
176         sts = test_IsEven.SuspendedW()
177         sts = incr_Incr.SuspendedW()
178         sts = IsEvenBoolEven = test_IsEvenBoolEven.ToString()
179         sts = result_Current.SuspendedW()
180         print "div2_Div2",result_CurrentaCurrent.ToString(),IsEvenBoolEven
181     IsOneBoolOne = test_IsOneBoolOne.ToString()
182
183
184
185 GraphSyracuseCpp.PrintThreads()
186 sts = m3p1_M3p1.ControlClear()
187 sts = m3p1_M3p1.Resume()
188 sts = div2_Div2.ControlClear()
189 sts = div2_Div2.Resume()
190 sts = incr_Incr.ControlClear()
191 sts = incr_Incr.Resume()
192 sts = test_IsOne.Resume()
193 sts = test_IsEven.Resume()
194 sts = result_Current.ControlClear()
195 sts = result_Current.Resume()
196 sts = result_Count.ControlClear()
197 sts = result_Count.Resume()
198 sts = GraphSyracuseCpp.DoneW()
199 GraphSyracuseCpp.PrintPorts()
200 GraphSyracuseCpp.PrintThreads()
201