package server;

import client.ClientDataInterface;
import java.rmi.*;

/****
 *
 * ServerInterface defines the remote methods that class <a href= Server.html>
 * Server </a> provides.  The point of defining this interface is so the actual
 * implementation of the server class need not (and typically does not) exist
 * on the client machine.
 *
 */
public interface ServerInterface extends Remote {

    /**
     * Receive some input from the client.  Store a local copy for computation
     * use.  Also, display the data in the server's display window.
     */
    public void receiveClientInput(ClientDataInterface clientData)
	throws RemoteException;

    /**
     * Perform some computation using the client input.  In this case, we
     * simply add 1 to the numeric input value.
     */
    public void compute() throws RemoteException;

    /**
     * Return computation results back to the client, when the client calls for
     * it.
     */
    public Object getServerOutput() throws RemoteException;

}