//     $Id: ServerRMItoDemonIface.java,v 3.3 1998/12/09 20:07:45 mk2z Exp $
 ////////////////////////////////////////////////////////////////////////////
 //
 // File: ServerRMItoDemonIface.java
 //
 // Purpose: This file defines the interface that ServerRMI will
 //         export to its RegistryServer, and then passed to 
 //        Demon. 
 //
 // Authors:
 //  Orim   Miro Kresonja  mk2z@virginia.edu
 //
 // Modifications:
 //   15-NOV-1998  Orim  Initial creation
 //   04-DEC-1998  Orim  Added ConnectDemon, QuitDemon methods
 //
 ////////////////////////////////////////////////////////////////////////////
 import java.rmi.*;
 public interface ServerRMItoDemonIface
     extends java.rmi.Remote
 {
   ///////////////////////////////////////////////////////////////////
   //
   //  ConnectDemon - This is a stub for the ServerRMI's ConnectDemon
   //  method. The demon will ask for an initial map to display, at
   //  the same time confirming it can find the server in its proper
   //  place.
   //   
   ///////////////////////////////////////////////////////////////////
   Map ConnectDemon ()
   throws RemoteException, Exception;
   ///////////////////////////////////////////////////////////////////
   //
   //  RegisterDemon -This is a stub for the ServerRMI's RegisterDemon 
   //  method. The Demon will announce itself and pass its 
   //  interface to ServerRMI. The Demon will be given a "password"
   //  fo identification.
   //
   ///////////////////////////////////////////////////////////////////
   int RegisterDemon (DemonRMIIface obj)
   throws RemoteException, Exception;
   ///////////////////////////////////////////////////////////////////
   //
   //  SubmitMode -This is a stub for the ServerRMI's SubmitMode 
   //  method. The Demon picks what type the next run will have.
   //   
   ///////////////////////////////////////////////////////////////////
   public boolean SubmitMode(int mode, int runs)
   throws RemoteException, Exception;
   ///////////////////////////////////////////////////////////////////
   //
   //  StartRun - This is a stub for the ServerRMI's StartRun
   //  method. The Demon needs to pass the server the simulation stats
   //  in order for the server to be able to execute the sim.
   //   
   ///////////////////////////////////////////////////////////////////
   boolean StartRun (int propagation, long delay)
   throws RemoteException, Exception;
   ///////////////////////////////////////////////////////////////////
   //
   //  Abort - tells the server to stop the current run.
   // 
   ///////////////////////////////////////////////////////////////////
   public boolean Abort()
   throws RemoteException, Exception;
   ///////////////////////////////////////////////////////////////////
   //   
   //  Shutdown - That's Demon telling us that everybody needs to 
   //  shut down.
   //   
   ///////////////////////////////////////////////////////////////////
   boolean Shutdown ()
   throws RemoteException, Exception;
   ///////////////////////////////////////////////////////////////////
   //   
   //  DemonQuit - This particular demon has been shut down.
   //   
   ///////////////////////////////////////////////////////////////////
   void DemonQuit (int password)
   throws RemoteException, Exception;
 }
 ////////////////////////////////////////////////////////////////////////////