Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Refunding the restart mechanism.
[hpcvm.git] / src / and / hpcvm / ComputingClient.java
diff --git a/src/and/hpcvm/ComputingClient.java b/src/and/hpcvm/ComputingClient.java
new file mode 100644 (file)
index 0000000..b71b748
--- /dev/null
@@ -0,0 +1,83 @@
+package and.hpcvm;
+
+import java.io.Serializable;
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+
+
+
+
+public class ComputingClient implements Serializable
+{
+
+       private static final long serialVersionUID = 1L;
+       private ConnectedClient client ;
+       private boolean save_status ;
+       private ArrayList<SaveNeighbor> save_neighbors ;
+       private String lastSaveName ;
+       private boolean saveRequest ;
+       private boolean restartOk ;
+
+       ComputingClient( ConnectedClient cl )
+       {
+               client = cl ;
+               save_status = false ;
+               save_neighbors = new ArrayList<SaveNeighbor>() ;
+               lastSaveName = "none" ;
+               saveRequest = false ;
+               restartOk = false ;
+       }
+       
+       protected void setRestartOk( boolean _b ) { restartOk = _b ; }
+       
+       protected boolean getRestartOk() { return restartOk ; }
+       
+       protected void setSaveRequest( boolean _b ) { saveRequest = _b ; }
+       
+       protected boolean getSaveRequest() { return saveRequest ; }
+
+       protected ConnectedClient getClient() { return client ; }
+
+       protected boolean getSaveStatus(){ return save_status ; }
+
+       protected void setSaveStatus( boolean _status ) { save_status = _status ; }
+
+       protected void setSaveNeighbor( SaveNeighbor _sn ) 
+       { 
+               if( _sn != null )
+               {
+                       if( save_neighbors.size() == 0 )
+                       {
+                               save_neighbors.add( _sn ) ;
+                       } else {
+                               save_neighbors.set( 0, _sn ) ;
+                       }
+
+                       try {
+                               client.getStub().setSaveNeighbor( _sn ) ;
+                       } catch( RemoteException e ) {
+                               System.err.println( "Error while setting save neighbor on " + 
+                                               client.getName() + "(" + client.getIP() + ")!" ) ;
+                               e.printStackTrace() ;
+                       }
+               }
+       }
+
+       protected SaveNeighbor getSaveNeighbor() 
+       {
+               if( save_neighbors.isEmpty() )
+               {
+                       return null ;
+               } else {
+                       return save_neighbors.get( 0 ) ;
+               }
+       }
+
+       public void setLastSave( String _saveName ) 
+       {
+               lastSaveName = _saveName ;                      
+       }
+
+       public String getLastSave() { return lastSaveName ; }
+
+}
\ No newline at end of file