/**
- * Implementation of Simple Mapping algorithm
+ * Implementation of the Simple Mapping algorithm (no fault tolerance mechanism)
* @author Sébastien Miquée
* @version 1.0
*/
public Simple()
{
super() ;
+ name = "Simple" ;
}
public Simple( Graph _gr, Grid _gd )
{
super( _gr, _gd ) ;
+
+ name = "Simple" ;
}
/**
{
grn = new ArrayList<GNode>() ;
- // Tri des clusters suivant leur taille
+ // Sorting clusters according to their "size"
ArrayList<Cluster> cl = gl.getClusters() ;
ArrayList<Cluster> cl2 = new ArrayList<Cluster>() ;
/** Save the Mapping **/
for( int i = 0 ; i < atraiter.size() ; i++ )
{
- mp.addMapping( new Association( archi.get( i ), atraiter.get( i ) ) ) ;
+ mp.addMapping( archi.get( i ), atraiter.get( i ) ) ;
}
} else {
System.err.println( "\n\n!!! Unable to map application !\n\n" ) ;
}
+
}
@Override
- public GNode replaceNode(GNode replaced, ArrayList<GNode> _ag )
+ public GNode replaceNode(GNode _dead, ArrayList<GNode> _ag )
{
- // TODO
+ GNode ret = null ;
+
+ if( _dead != null )
+ {
+ int pos = 0 ;
+ pos = mp.getIdOfAssociation( _dead ) ;
+
+ if( pos == -1 )
+ {
+ System.err.println( "GNode "+_dead+" does not exist in the mapping!" ) ;
+ return null ;
+ }
+
+ if( _ag.size() > 0 )
+ {
+ ret = _ag.get( 0 ) ;
+
+
+ } else {
+ System.err.println( "Not enought available nodes in gnodes to replace one !" ) ;
+ return null ;
+ }
+
+ nb_fault++ ;
+ }
+
+ return ret ;
+ }
+
+
+ @Override
+ public GNode getOtherGNode( ArrayList<GNode> _ag )
+ {
+ /** Returning the first node in the list **/
+ if( _ag.size() > 0 )
+ {
+ return _ag.get( 1 ) ;
+ }
+
return null ;
}
@Override
- public GNode getOtherGNode( ArrayList<GNode> _ag ) {
- // TODO Auto-generated method stub
- return null;
+ public boolean setParams(Object[] _params) {
+ return true ;
}
}