import java.rmi.* ; import java.rmi.server.* ; import java.net.* ; import java.util.Hashtable ; /* ************************************ */ /* Extension de UnicastRemoteObject */ /* Implantation de l'interface distante */ /* ************************************ */ public class ServeurEx1 extends UnicastRemoteObject implements InterfaceEx1 { private Hashtable h ; /* ************************************ */ /* Constructeur */ /* ************************************ */ public ServeurEx1() throws RemoteException { super() ; h = new Hashtable() ; } /* ************************************ */ /* Fonction de l'interface distante */ /* ************************************ */ public int nombrePositions() throws RemoteException { return(h.size()) ; } /* ************************************ */ /* Fonction de l'interface distante */ /* ************************************ */ public boolean testPosition(String nom) throws RemoteException { return(h.containsKey(nom)) ; } /* ************************************ */ /* Fonction de l'interface distante */ /* ************************************ */ public Position position(String nom) throws RemoteException { return((Position) h.get(nom)) ; } /* ************************************ */ /* Fonction de l'interface distante */ /* ************************************ */ public void nouvellePosition(Position p,String nom) throws RemoteException { h.put(nom,p) ; } /* ************************************ */ /* Fonction de l'interface distante */ /* ************************************ */ public void destructionPosition(String nom) throws RemoteException { h.remove(nom) ; } /* ************************************ */ /* Fonction de l'interface distante */ /* ************************************ */ public void affectePosition(Position p,String nom) throws RemoteException { Position pp =(Position) h.get(nom) ; pp.x = p.x ; pp.y = p.y ; } /* ************************************ */ /* Application serveur assurant */ /* la creation d'un objet distant, */ /* sa referenciation avec namming */ /* sur la rmiregistry de l'hote local */ /* ************************************ */ public static void main(String [] args) { try { ServeurEx1 ib = new ServeurEx1(); Naming.rebind("Donnee",ib) ; System.out.println("Prêt"); } catch (RemoteException re) { System.out.println(re) ; } catch(MalformedURLException e) { System.out.println(e) ; } } }