package edu.umd.rhsmith.diads.meater.core.remote; import java.rmi.Remote; import java.rmi.RemoteException; import edu.umd.rhsmith.diads.meater.util.ControlException; /** * The interface with which another process can control a running * MEater instance. * */ public interface IMEaterRemoteControl extends Remote { /** * Instructs this MEater instance to cease data collection * (though it can continue working through its backlog). * * @throws RemoteException * If a network error occurs * @throws IllegalStateException * If this instance is not yet started * @throws ControlException * If an internal error occurs while shutting down the MEater * instance * @throws ControlException */ public void remoteStop() throws RemoteException, IllegalStateException, ControlException; /** * @return <code>true</code> if this MEater instance is * actively collecting data (and not only working through its * backlog) * @throws RemoteException * If a network error occurs */ public boolean remoteIsActive() throws RemoteException; /** * @return The fraction of available memory this MEater instance's JVM * is currently using. * @throws RemoteException * If a network error occurs */ public float remoteGetMemoryUsage() throws RemoteException; /** * * @return The current status of this MEater instance with regards to * startup and shutdown control. * @throws RemoteException * If a network error occurs */ public String remoteGetControlStatus() throws RemoteException; }