A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
mapping.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
Adding some new functions.
[mapping.git]
/
src
/
and
/
Mapping
/
Cluster.java
diff --git
a/src/and/Mapping/Cluster.java
b/src/and/Mapping/Cluster.java
index
0561682
..
39c48bd
100644
(file)
--- a/
src/and/Mapping/Cluster.java
+++ b/
src/and/Mapping/Cluster.java
@@
-14,11
+14,12
@@
public class Cluster implements Serializable
{
private static final long serialVersionUID = 1L;
-
private int nb_node ;
+
//
private int nb_node ;
private String name ;
private ArrayList<GNode> nodes ;
+ private ArrayList<GNode> freenodes ;
private String site ;
-
private int indice ;
+
//
private int indice ;
/**
@@
-26,52
+27,54
@@
public class Cluster implements Serializable
*/
public Cluster()
{
-
nb_node = 0 ;
+
//
nb_node = 0 ;
name = "" ;
nodes = new ArrayList<GNode>() ;
+ freenodes = new ArrayList<GNode>() ;
site = "" ;
-
indice = 0 ;
+
//
indice = 0 ;
}
- /**
- * Constructor.
- * @param _nb The amount of computing nodes in the cluster
- */
- public Cluster( int _nb )
- {
- nb_node = _nb ;
- name = "" ;
- nodes = new ArrayList<GNode>() ;
- site = "" ;
- indice = 0 ;
-
-
- for( int i = 0 ; i < nb_node ; i++ )
- {
- nodes.add( new GNode() ) ;
- }
- }
+// /**
+// * Constructor.
+// * @param _nb The amount of computing nodes in the cluster
+// */
+// public Cluster( int _nb )
+// {
+// nb_node = _nb ;
+// name = "" ;
+// nodes = new ArrayList<GNode>() ;
+// freenodes = new ArrayList<GNode>() ;
+// site = "" ;
+//// indice = 0 ;
+//
+//
+// for( int i = 0 ; i < nb_node ; i++ )
+// {
+// nodes.add( new GNode() ) ;
+// }
+// }
-
/**
-
* Constructor.
-
* @param _nb The amount of computing nodes in the cluster
-
* @param _name Cluster's name
-
*/
-
public Cluster( int _nb, String _name )
-
{
-
nb_node = _nb ;
-
name = _name ;
-
nodes = new ArrayList<GNode>() ;
-
site = "" ;
-
indice = 0 ;
-
-
for( int i = 0 ; i < nb_node ; i++ )
-
{
-
nodes.add( new GNode() ) ;
-
}
-
}
+
//
/**
+
//
* Constructor.
+
//
* @param _nb The amount of computing nodes in the cluster
+
//
* @param _name Cluster's name
+
//
*/
+
//
public Cluster( int _nb, String _name )
+
//
{
+
////
nb_node = _nb ;
+
//
name = _name ;
+
//
nodes = new ArrayList<GNode>() ;
+
//
site = "" ;
+
////
indice = 0 ;
+//
+
//
for( int i = 0 ; i < nb_node ; i++ )
+
//
{
+
//
nodes.add( new GNode() ) ;
+
//
}
+
//
}
/**
@@
-90,10
+93,18
@@
public class Cluster implements Serializable
*/
public void addGNode( GNode _n )
{
- _n.setInCluster( true ) ;
- nodes.add( _n ) ;
+ if( _n != null )
+ {
+ _n.setInCluster( true ) ;
+ nodes.add( _n ) ;
- nb_node++ ;
+// nb_node++ ;
+
+ if( ! _n.getMapped() )
+ {
+ freenodes.add( _n ) ;
+ }
+ }
}
@@
-123,7
+134,8
@@
public class Cluster implements Serializable
*/
public int getNbGNode()
{
- return nb_node ;
+// return nb_node ;
+ return nodes.size() ;
}
@@
-150,29
+162,35
@@
public class Cluster implements Serializable
/**
* Test if a computing node is in the cluster.
* @param _g The node to be tested
- * @return T
rue is _g is in, False els
e
+ * @return T
he position of the nod
e
*/
- public
boolean
isIn( GNode _g )
+ public
int
isIn( GNode _g )
{
+ int pos = -1 ;
+
if( _g != null )
{
- for( int i = 0
; i < nodes.size()
; i ++ )
+ for( int i = 0
; i < nodes.size()
; i ++ )
{
if( nodes.get( i ).getId() == _g.getId() )
- return true ;
+ {
+ pos = i ;
+ break ;
+ }
+
}
}
- return
false
;
+ return
pos
;
}
-
/**
-
* Initialization of indice variable.
-
*/
-
public void initIndice()
-
{
-
indice = 0 ;
-
}
+
//
/**
+
//
* Initialization of indice variable.
+
//
*/
+
//
public void initIndice()
+
//
{
+
//
indice = 0 ;
+
//
}
/**
@@
-184,10
+202,14
@@
public class Cluster implements Serializable
{
GNode ret = null ;
- if( indice < nb_node )
+// if( indice < nb_node )
+// {
+// ret = nodes.get( indice ) ;
+// indice++ ;
+// }
+ if( freenodes.size() > 0 )
{
- ret = nodes.get( indice ) ;
- indice++ ;
+ ret = freenodes.get( 0 ) ;
}
return ret ;
@@
-206,14
+228,71
@@
public class Cluster implements Serializable
{
if( _dead.getId() == nodes.get( i ).getId() )
{
-
nodes.remove( i
) ;
-
nb_node-- ;
+
freenodes.remove( nodes.remove( i )
) ;
+
//
nb_node-- ;
break ;
}
}
}
+ }
+
+
+ /**
+ * Set the mapped status of a node of the cluster.
+ * @param _g The mapped node
+ * @param _status The status of the node
+ */
+ public void setGNodeStatus( GNode _g, boolean _status )
+ {
+ if( _g != null )
+ {
+ for( int i = 0 ; i < nodes.size() ; i++ )
+ {
+ if( nodes.get( i ).getId() == _g.getId() )
+ {
+ nodes.get( i ).setMapped( _status ) ;
+
+ if( _status )
+ {
+ freenodes.remove( nodes.get(i) ) ;
+ } else {
+ if( ! freenodes.contains( nodes.get( i ) ) )
+ freenodes.add( nodes.get( i ) ) ;
+ }
+ }
+ }
+ }
+ }
+
+
+ /**
+ * Return the amount of available free nodes in the cluster.
+ * @return The amount of free nodes
+ */
+ public int getNbFreeNodes()
+ {
+ return freenodes.size() ;
+ }
+
+
+ /**
+ * Initialization of computing nodes in this cluster. Set all
+ * of these nodes to be not mapped on.
+ */
+ public void initGNodes()
+ {
+ /** Initialization of local nodes **/
+ /** and reconstruction of the freenodes list **/
+ freenodes = null ;
+ freenodes = new ArrayList<GNode>() ;
+ for( int i = 0 ; i < nodes.size() ; i++ )
+ {
+ nodes.get( i ).setMapped( false ) ;
+
+ freenodes.add( nodes.get( i ) ) ;
+ }
}
}