1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
| public class MessageDiffuseurInit
{
private SiteItf arbre ;
public MessageDiffuseurInit() throws MalformedURLException, RemoteException, NotBoundException
{
arbre = (SiteItf) Naming.lookup("0") ;
while( arbre.getPere() != null)
arbre = arbre.getPere() ;
}
// on affiche l'arborescence de l'arbre
public void getList(SiteItf arbre, int esp) throws MalformedURLException, RemoteException, NotBoundException
{
if ( arbre != null)
{
esp++ ;
for (int i = 0 ; i < esp ; i++)
{
System.out.print(" ") ;
}
for ( int i = 0 ; i < arbre.getNbFils() ; i++)
{
System.out.println("fils de "+arbre.getNumero()+" : "+arbre.getFils(i).getNumero());
getList(arbre.getFils(i), esp) ;
}
for (int i = 0 ; i < esp ; i++)
{
System.out.print(" ") ;
}
for ( int i = 0 ; i < arbre.getNbFreres() ; i++)
{
System.out.println("frere de "+arbre.getNumero()+" : "+arbre.getFrere(i).getNumero());
getList(arbre.getFrere(i), esp) ;
}
}
}
public SiteItf getPere()
{
return arbre;
}
public static void main(String args[]) throws MalformedURLException, RemoteException, NotBoundException
{
MessageDiffuseurInit mD = new MessageDiffuseurInit() ;
System.out.println(mD.getPere().getNumero());
mD.getList(mD.getPere(), 1) ;
Scanner sc = new Scanner(System.in) ;
System.out.println("Dans quel noeud initier la diffusion ? ") ;
String rep = sc.nextLine() ;
SiteItf arbreDiff = (SiteItf) Naming.lookup(rep) ;
ArrayList<Byte> data = new ArrayList<Byte>() ;
int continuer = 1 ;
//entree des donnees a diffuser
while ( continuer == 1 )
{
System.out.println("Entrer les donnees a diffuser : ") ;
data.add(sc.nextByte()) ;
System.out.println("Continuer d'entrer des donnees ? 1 oui 0 non ") ;
continuer = sc.nextInt() ;
}
Byte[] donnees = new Byte[data.size()] ;
for ( int i = 0 ; i < donnees.length ; i++)
donnees[i] = data.get(i) ;
//thread pour diffuser de maniere concurrente les donnees
ThreadDiffuseur tDiff = new ThreadDiffuseur(arbreDiff, donnees, arbreDiff.getNumero()) ;
Thread t = new Thread(tDiff) ;
t.start() ;
}
} |
Partager