Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Correction of the start application time setup.
[hpcvm.git] / src / and / hpcvm / RunningApplication.java
1 package and.hpcvm;
2
3 import java.io.Serializable;
4 import java.util.ArrayList;
5
6
7
8 public class RunningApplication implements Serializable
9 {
10         private static final long serialVersionUID = 1L;
11         private String name ;
12         private ArrayList<ComputingClient> computingsNodes ;
13         private long lastSaveDate ;
14         private String vmName ;
15         private boolean running ;
16         private long startTime ;
17         private long endTime ;
18         private boolean start_mark ;
19         
20         public RunningApplication( String _name )
21         {
22                 name = _name ;
23                 computingsNodes = new ArrayList<ComputingClient>() ;
24                 lastSaveDate = 0 ;
25                 running = false ;
26                 startTime = -1 ;
27                 endTime = 0 ;
28                 start_mark = false ;
29         }
30         
31         public void setStartMark() { start_mark = true ; }
32         
33         public boolean getStartMark() { return start_mark ; } 
34         
35         public void clear() { computingsNodes.clear() ; }
36         
37         public int getNbComputingClients() { return computingsNodes.size() ; }
38         
39         public long getLastSaveDate() { return lastSaveDate ; }
40         
41         public void setLastSaveDate( long _sd ) { lastSaveDate = _sd ; }
42         
43         public void setName( String _name ) { name = _name ; }
44         
45         public String getName() { return name ; }
46         
47         public void setStartTime( long _t ) { startTime = _t ; }
48         
49         public long getStartTime() { return startTime ; }
50         
51         public void setEndTime( long _t ) { endTime = _t ; }
52         
53         public long getEndTime() { return endTime ; }
54         
55         public long getExecutionTime() { return endTime - startTime ; }
56         
57         
58         public void setComputingClients( ArrayList<ComputingClient> _cc )
59         {
60                 if( _cc != null )
61                 {
62                         computingsNodes.clear() ;
63                         
64                         System.out.println( "Application " + name + " contains clients:" ) ;
65                         
66                         for( int i = 0 ; i < _cc.size() ; i++ )
67                         {
68                                 computingsNodes.add( _cc.get( i ) ) ;
69                                 System.out.println( "  " + _cc.get(i).getClient().getName() ) ;
70                         }
71                 }
72         }
73
74         
75         public ArrayList<ComputingClient> getComputingClients() { return computingsNodes ; }
76
77         
78         public int replaceComputingClient( ComputingClient _dead, ComputingClient _new )
79         {
80                 if( _dead != null && _new != null )
81                 {
82                         for( int i = 0 ; i < computingsNodes.size() ; i++ )
83                         {
84                                 if( computingsNodes.get( i ).getClient().getIP().equalsIgnoreCase( _dead.getClient().getIP() ) )
85                                 {
86                                         System.out.println( "Replacing " + _dead.getClient().getName() + " with " +_new.getClient().getName() ) ;
87                                         computingsNodes.set( i , _new ) ;
88                                         return 0 ;
89                                 }
90                         }
91                         
92                         System.err.println( "Dead computing client not found. Unable to replace it!" ) ;
93                         return 1 ;
94                 }
95                 
96                 System.err.println( "Dead or new computing client is null! Unable to replace one of them!" ) ;
97                 
98                 return 1 ;
99         }
100         
101         
102         public void setVmName( String _vmname ) { vmName = _vmname ; }
103         
104         public String getVmName() { return vmName ; }
105                 
106         public void setRunning( boolean _b ) { running = _b ; }
107         
108         public boolean getRunning() { return running ; }
109         
110 }
111
112 /** La programmation est un art, respectons ceux qui la pratiquent !! **/