package server;

import java.rmi.Remote;
import java.rmi.RemoteException;

import client.ClientKommunikator;


/**
 * Der Server bietet einen Service unter dem Namen 
 * "SpielServerManager" an. 
 * Der Server nimmt Anmeldungen von
 * einem ClientKommunikator mit Namen und Passwort entgegen.
 *
 * Neu in 1.2: anmelden wirft PasswortFalschException und NameVorhandenException
 *
 * @version 1.2
 * @author ProgPrak-Team
 */

public interface Server extends Remote {
	
	/**Diese Methode dient zur Anmeldung des Benutzers via seines
	 * SpielClientManagers. Die weitere Kommunikation läuft über den 
	 * ServerKommunikator.
	 * 
	 * @param clientKommunikator der ClientKommunikator der sich anmelden möchte
	 * @param name der Name mit dem sich der Benutzer anmelden möchte.
	 * @param passwort das Passwort mit dem der Benutzer sich anmelden möchte
	 * @return ServerKommunikator mit dem der ClientKommunikator kommuniziert.
	 */
	public ServerKommunikator anmelden(ClientKommunikator clientKommunikator, String name, String passwort) throws RemoteException, NameVorhandenException, PasswortFalschException;
	
	
}
