package dslab.rmi.serialize; import dslab.protocol.Protocol; import dslab.protocol.ProtocolException; import dslab.protocol.dmap.Dmap; import dslab.protocol.dmtp.Dmtp; public class Executors { private Executors() {} //don't instantiate /** * Represents a method call on a protocol instance. */ @FunctionalInterface public interface Executor { R apply(PROTOCOL protocol) throws ProtocolException; } public interface ThrowingSupplier { R get() throws E; } @FunctionalInterface public interface DmapExecutor extends Executor {} @FunctionalInterface public interface DmtpExecutor extends Executor {} @FunctionalInterface public interface ThrowingRunnable { void run() throws Exception; } }