Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Adding missing handler when a restart crash.
[hpcvm.git] / src / and / hpcvm / ComputingClient.java
1 package and.hpcvm;
2
3 import java.io.Serializable;
4 import java.rmi.RemoteException;
5 import java.util.ArrayList;
6
7
8
9
10 public class ComputingClient implements Serializable
11 {
12
13         private static final long serialVersionUID = 1L;
14         private ConnectedClient client ;
15         private boolean save_status ;
16         private ArrayList<SaveNeighbor> save_neighbors ;
17         private String lastSaveName ;
18         private boolean saveRequest ;
19         private boolean restartOk ;
20         private boolean fail ;
21
22         ComputingClient( ConnectedClient cl )
23         {
24                 client = cl ;
25                 save_status = false ;
26                 save_neighbors = new ArrayList<SaveNeighbor>() ;
27                 lastSaveName = "none" ;
28                 saveRequest = false ;
29                 restartOk = false ;
30                 fail = false ;
31         }
32         
33         protected void setFail( boolean _b ) { fail = _b ; }
34         
35         protected boolean getFail() { return fail ; }
36         
37         protected void setRestartOk( boolean _b ) { restartOk = _b ; }
38         
39         protected boolean getRestartOk() { return restartOk ; }
40         
41         protected void setSaveRequest( boolean _b ) { saveRequest = _b ; }
42         
43         protected boolean getSaveRequest() { return saveRequest ; }
44
45         protected ConnectedClient getClient() { return client ; }
46
47         protected boolean getSaveStatus(){ return save_status ; }
48
49         protected void setSaveStatus( boolean _status ) { save_status = _status ; }
50
51         protected void setSaveNeighbor( SaveNeighbor _sn ) 
52         { 
53                 if( _sn != null )
54                 {
55                         if( save_neighbors.size() == 0 )
56                         {
57                                 save_neighbors.add( _sn ) ;
58                         } else {
59                                 save_neighbors.set( 0, _sn ) ;
60                         }
61
62                         try {
63                                 client.getStub().setSaveNeighbor( _sn ) ;
64                         } catch( RemoteException e ) {
65                                 System.err.println( "Error while setting save neighbor on " + 
66                                                 client.getName() + "(" + client.getIP() + ")!" ) ;
67                                 e.printStackTrace() ;
68                         }
69                 }
70         }
71
72         protected SaveNeighbor getSaveNeighbor() 
73         {
74                 if( save_neighbors.isEmpty() )
75                 {
76                         return null ;
77                 } else {
78                         return save_neighbors.get( 0 ) ;
79                 }
80         }
81
82         public void setLastSave( String _saveName ) 
83         {
84                 lastSaveName = _saveName ;                      
85         }
86
87         public String getLastSave() { return lastSaveName ; }
88
89 }