Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Little correction on crash detection.
[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         
19         public RunningApplication( String _name )
20         {
21                 name = _name ;
22                 computingsNodes = new ArrayList<ComputingClient>() ;
23                 lastSaveDate = 0 ;
24                 running = false ;
25                 startTime = 0 ;
26                 endTime = 0 ;
27         }
28         
29         
30         public void clear() { computingsNodes.clear() ; }
31         
32         public int getNbComputingClients() { return computingsNodes.size() ; }
33         
34         public long getLastSaveDate() { return lastSaveDate ; }
35         
36         public void setLastSaveDate( long _sd ) { lastSaveDate = _sd ; }
37         
38         public void setName( String _name ) { name = _name ; }
39         
40         public String getName() { return name ; }
41         
42         public void setStartTime( long _t ) { startTime = _t ; }
43         
44         public long getStartTime() { return startTime ; }
45         
46         public void setEndTime( long _t ) { endTime = _t ; }
47         
48         public long getEndTime() { return endTime ; }
49         
50         public long getExecutionTime() { return endTime - startTime ; }
51         
52         
53         public void setComputingClients( ArrayList<ComputingClient> _cc )
54         {
55                 if( _cc != null )
56                 {
57                         computingsNodes.clear() ;
58                         
59                         System.out.println( "Application " + name + " contains clients:" ) ;
60                         
61                         for( int i = 0 ; i < _cc.size() ; i++ )
62                         {
63                                 computingsNodes.add( _cc.get( i ) ) ;
64                                 System.out.println( "  " + _cc.get(i).getClient().getName() ) ;
65                         }
66                 }
67         }
68
69         
70         public ArrayList<ComputingClient> getComputingClients() { return computingsNodes ; }
71
72         
73         public int replaceComputingClient( ComputingClient _dead, ComputingClient _new )
74         {
75                 if( _dead != null && _new != null )
76                 {
77                         for( int i = 0 ; i < computingsNodes.size() ; i++ )
78                         {
79                                 if( computingsNodes.get( i ).getClient().getIP().equalsIgnoreCase( _dead.getClient().getIP() ) )
80                                 {
81                                         System.out.println( "Replacing " + _dead.getClient().getName() + " with " +_new.getClient().getName() ) ;
82                                         computingsNodes.set( i , _new ) ;
83                                         return 0 ;
84                                 }
85                         }
86                         
87                         System.err.println( "Dead computing client not found. Unable to replace it!" ) ;
88                         return 1 ;
89                 }
90                 
91                 System.err.println( "Dead or new computing client is null! Unable to replace one of them!" ) ;
92                 
93                 return 1 ;
94         }
95         
96         
97         public void setVmName( String _vmname ) { vmName = _vmname ; }
98         
99         public String getVmName() { return vmName ; }
100                 
101         public void setRunning( boolean _b ) { running = _b ; }
102         
103         public boolean getRunning() { return running ; }
104         
105 }
106
107 /** La programmation est un art, respectons ceux qui la pratiquent !! **/