Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Refunding the restart mechanism.
[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
21         ComputingClient( ConnectedClient cl )
22         {
23                 client = cl ;
24                 save_status = false ;
25                 save_neighbors = new ArrayList<SaveNeighbor>() ;
26                 lastSaveName = "none" ;
27                 saveRequest = false ;
28                 restartOk = false ;
29         }
30         
31         protected void setRestartOk( boolean _b ) { restartOk = _b ; }
32         
33         protected boolean getRestartOk() { return restartOk ; }
34         
35         protected void setSaveRequest( boolean _b ) { saveRequest = _b ; }
36         
37         protected boolean getSaveRequest() { return saveRequest ; }
38
39         protected ConnectedClient getClient() { return client ; }
40
41         protected boolean getSaveStatus(){ return save_status ; }
42
43         protected void setSaveStatus( boolean _status ) { save_status = _status ; }
44
45         protected void setSaveNeighbor( SaveNeighbor _sn ) 
46         { 
47                 if( _sn != null )
48                 {
49                         if( save_neighbors.size() == 0 )
50                         {
51                                 save_neighbors.add( _sn ) ;
52                         } else {
53                                 save_neighbors.set( 0, _sn ) ;
54                         }
55
56                         try {
57                                 client.getStub().setSaveNeighbor( _sn ) ;
58                         } catch( RemoteException e ) {
59                                 System.err.println( "Error while setting save neighbor on " + 
60                                                 client.getName() + "(" + client.getIP() + ")!" ) ;
61                                 e.printStackTrace() ;
62                         }
63                 }
64         }
65
66         protected SaveNeighbor getSaveNeighbor() 
67         {
68                 if( save_neighbors.isEmpty() )
69                 {
70                         return null ;
71                 } else {
72                         return save_neighbors.get( 0 ) ;
73                 }
74         }
75
76         public void setLastSave( String _saveName ) 
77         {
78                 lastSaveName = _saveName ;                      
79         }
80
81         public String getLastSave() { return lastSaveName ; }
82
83 }