Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
3201ecf608fcf1c7f77bbdf3cd0e4484c7ec574b
[simgrid.git] / src / bindings / ruby / ProcessFactory.rb
1 require 'RubyProcess'
2 require 'RubyHost'
3 class ProcessFactory 
4
5 #     Attributes
6    attr_accessor :args, :proprieties, :hostName, :function
7     
8    
9 #    Initlialize
10     def initialize()
11     
12     @args = Array.new
13     @proprieties = Hash.new
14     @hostName = nil
15     @function = nil
16     
17     end
18     
19 #     setProcessIdentity
20     
21     def setProcessIdentity( hostName , function)
22       @hostName = hostName
23       @function = function
24       
25       if !args.empty?
26         args.clear
27       end
28       
29       if !proprieties.empty?
30         proprieties.clear   
31       end
32     
33     
34     end
35
36 #     RegisterProcess
37     
38     def registerProcessArg( arg )
39       
40       args.push(arg)
41       
42     end
43
44 #     CreateProcess
45     
46     def createProcess()
47       
48       
49       
50       process = RbProcess.new()
51       
52       
53       
54       process.name = @function
55       
56       
57       process.id = process.nextId() # This increment Automaticly  The Static ProcessNextId for The Class RbProcess
58         
59       
60      
61       
62       host = rbHost.getByName(@hostName)
63       
64       Process.createProcess(process,host) 
65       
66       size = @args.size
67       
68       for i in 0..size-1
69         
70         process.pargs.push(@args[i])
71         
72       end
73           
74       process.proprieties = @proprieties
75       
76       @proprieties = Hash.new
77       
78     end
79     
80     
81 #     SetProperty
82     
83     def setProperty( id , value )
84       
85       @proprieties[id] = value
86       
87     end
88     
89 #     End Class
90   end