Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Correction of a function and adding a setter.
[mapping.git] / src / and / Mapping / Cluster.java
index 712f17c..588c26e 100644 (file)
@@ -168,15 +168,24 @@ public class Cluster implements Serializable
                {
                        if( moreNode >= freenodes.size() )
                        {
-                               moreNode = 0 ;
+                               System.err.println( "No more free node available" );
+                       } else {
+                               ret = freenodes.get( moreNode ) ;
+                               moreNode++ ;
                        }
-                       
-                       ret = freenodes.get( moreNode ) ;
-                       moreNode++ ;
                }
                
                return ret ;
        }
+       
+       
+       /**
+        * (Re-)Initialize the moreNode counter. 
+        */
+       public void initMoreGNode()
+       {
+               moreNode = 0 ;
+       }
 
 
        /**
@@ -270,9 +279,8 @@ public class Cluster implements Serializable
        
        
        /**
-        * Compute and return the real available computing power of the cluster,
-        * including the heterogeneity degree of the platform. 
-        * @return The real available computing power
+        * Compute and return the available computing power of the cluster.
+        * @return The available computing power
         */
        public double getAvailablePower()
        {
@@ -289,7 +297,65 @@ public class Cluster implements Serializable
                
                return ret ;
        }
+       
+       
+       /**
+        * Compute and return the average available computing power of the cluster.
+        * @return The available available computing power
+        */
+       public double getAvgAvailablePower()
+       {
+               double ret = 0 ;
+               
+               /** If there is some available nodes **/
+               if( freenodes.size() > 0 )
+               {                                               
+                       for( int i = 0 ; i < freenodes.size() ; i++ )
+                       {
+                               ret += freenodes.get( i ).getPower() ;
+                       }
+                       
+                       ret = ret / freenodes.size() ;
+               }
+               
+               return ret ;
+       }
 
+       
+       public double getAvgPower()
+       {
+               double ret = 0 ;
+               
+               /** If there is some available nodes **/
+               if( nodes.size() > 0 )
+               {                                               
+                       for( int i = 0 ; i < nodes.size() ; i++ )
+                       {
+                               ret += nodes.get( i ).getPower() ;
+                       }
+                       
+                       ret = ret / nodes.size() ;
+               }
+               
+               return ret ;
+       }
+       
+       
+       public double getPower()
+       {
+               double ret = 0 ;
+               
+               /** If there is some available nodes **/
+               if( nodes.size() > 0 )
+               {                                               
+                       for( int i = 0 ; i < nodes.size() ; i++ )
+                       {
+                               ret += nodes.get( i ).getPower() ;
+                       }
+               }
+               
+               return ret ;
+       }
 
        /**
         * Initialization of computing nodes in this cluster. Set all