package aQute.remote.api; /** * A Supervisor handles the initiating side of a session with a remote agent. * The methods defined in this interface are intended to be called by the remote * agent, not the initiator. I.e. this is not the interface the initiator will * use to control the session. */ public interface Supervisor { /** * An event sent from the agent. * * @param e the event */ void event(Event e) throws Exception; /** * Redirected standard output * * @param out the text that was redirected * @return ignored (to make sync) */ boolean stdout(String out) throws Exception; /** * Redirected standard error. * * @param out the text that was redirected * @return ignored (to make sync) */ boolean stderr(String out) throws Exception; /** * Return the contents of the file that has the given SHA-1. The initiator * of the connection should in general register the files it refers to in * the communication to the agent. The agent then calls this method to * retrieve the contents if it does not have it in its local cache. * * @param sha the SHA-1 * @return the contents of that file or null if no such file exists. */ byte[] getFile(String sha) throws Exception; }