import java.rmi.Remote; import java.rmi.RemoteException; import java.util.ArrayList; /** * Java Chat - A simple chatroom application - Chat Server Interface. * * This is the interface of methods implemented by the * server class. * * @author Sean Handley * @version November, 2006 */ public interface IChatServer extends Remote { /** * Check to see if a username exists on the server. * * @param username * @return true if the user was found in the client collection, false otherwise * @throws java.rmi.RemoteException */ public boolean checkUser(String username) throws RemoteException; /** * Get the list of users currently on the server. * * @return List of clients currently in the collection * @throws java.rmi.RemoteException */ public ArrayList<String> getUsers() throws RemoteException; /** * Attempt to add a user's callback interface. * * @param cb * @throws java.rmi.RemoteException */ public boolean addClient(ICallback cb) throws RemoteException; /** * Remove a user's callback interface. * * @param cb * @throws java.rmi.RemoteException */ public void removeClient(ICallback cb) throws java.rmi.RemoteException; /** * Get the newest message in the collection. * * @return newest message * @throws java.rmi.RemoteException */ public String getMessage() throws RemoteException; /** * Add a new message to the collection. * * @param msg * @throws java.rmi.RemoteException */ public void sendMessage(String msg) throws RemoteException; /** * Announce that a new user has joined the server. * * @param username * @throws java.rmi.RemoteException */ public void announce(String username) throws RemoteException; /** * Announce that a user has changed their name. * * @param oldName * @param newName * @throws java.rmi.RemoteException */ public void announceNameChange(String oldName, String newName) throws java.rmi.RemoteException; /** * Announce that a user has left the server. * * @param username * @throws java.rmi.RemoteException */ public void leave(String username) throws RemoteException; }