Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Refunding the restart mechanism.
[hpcvm.git] / src / and / hpcvm / RunningApplication.java
diff --git a/src/and/hpcvm/RunningApplication.java b/src/and/hpcvm/RunningApplication.java
new file mode 100644 (file)
index 0000000..5988648
--- /dev/null
@@ -0,0 +1,104 @@
+package and.hpcvm;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+
+
+
+public class RunningApplication implements Serializable
+{
+       private static final long serialVersionUID = 1L;
+       private String name ;
+       private ArrayList<ComputingClient> computingsNodes ;
+       private long lastSaveDate ;
+       private String vmName ;
+       private boolean running ;
+       private long startTime ;
+       private long endTime ;
+       
+       public RunningApplication( String _name )
+       {
+               name = _name ;
+               computingsNodes = new ArrayList<ComputingClient>() ;
+               lastSaveDate = 0 ;
+               running = false ;
+               startTime = 0 ;
+               endTime = 0 ;
+       }
+       
+       
+       public void clear() { computingsNodes.clear() ; }
+       
+       public int getNbComputingClients() { return computingsNodes.size() ; }
+       
+       public long getLastSaveDate() { return lastSaveDate ; }
+       
+       public void setLastSaveDate( long _sd ) { lastSaveDate = _sd ; }
+       
+       public void setName( String _name ) { name = _name ; }
+       
+       public String getName() { return name ; }
+       
+       public void setStartTime( long _t ) { startTime = _t ; }
+       
+       public long getStartTime() { return startTime ; }
+       
+       public void setEndTime( long _t ) { endTime = _t ; }
+       
+       public long getEndTime() { return endTime ; }
+       
+       public long getExecutionTime() { return endTime - startTime ; }
+       
+       
+       public void setComputingClients( ArrayList<ComputingClient> _cc )
+       {
+               if( _cc != null )
+               {
+                       computingsNodes.clear() ;
+                       
+                       System.out.println( "Application " + name + " contains clients:" ) ;
+                       
+                       for( int i = 0 ; i < _cc.size() ; i++ )
+                       {
+                               computingsNodes.add( _cc.get( i ) ) ;
+                               System.out.println( "  " + _cc.get(i).getClient().getName() ) ;
+                       }
+               }
+       }
+
+       
+       public ArrayList<ComputingClient> getComputingClients() { return computingsNodes ; }
+
+       
+       public int replaceComputingClient( ComputingClient _dead, ComputingClient _new )
+       {
+               if( _dead != null && _new != null )
+               {
+                       for( int i = 0 ; i < computingsNodes.size() ; i++ )
+                       {
+                               if( computingsNodes.get( i ).getClient().getIP().equalsIgnoreCase( _dead.getClient().getIP() ) )
+                               {
+                                       System.out.println( "Replacing " + _dead.getClient().getName() + " with " +_new.getClient().getName() ) ;
+                                       computingsNodes.set( i , _new ) ;
+                                       return 0 ;
+                               }
+                               
+                               System.err.println( "Dead computing client not found. Unable to replace it!" ) ;
+                       }
+               }
+               
+               return 1 ;
+       }
+       
+       
+       public void setVmName( String _vmname ) { vmName = _vmname ; }
+       
+       public String getVmName() { return vmName ; }
+               
+       public void setRunning( boolean _b ) { running = _b ; }
+       
+       public boolean getRunning() { return running ; }
+       
+}
+
+/** La programmation est un art, respectons ceux qui la pratiquent !! **/