package uk.ac.imperial.lsds.seep.comm; import java.util.Set; import com.esotericsoftware.kryo.Kryo; import uk.ac.imperial.lsds.seep.comm.protocol.SeepCommand; public interface Comm { // Raw data commands public boolean send_sync(byte[] data, Connection c); public void send_async(byte[] data, Connection c); public void send_sync(byte[] data, Set<Connection> cs); public void send_async(byte[] data, Set<Connection> cs); public boolean send_sync_parallel(byte[] data, Set<Connection> cs); public void send_async_parallel(byte[] data, Set<Connection> cs); // String commands public void send_sync(String data, Connection c); public void send_async(String data, Connection c); public void send_sync(String data, Set<Connection> cs); public void send_async(String data, Set<Connection> cs); public void send_sync_parallel(String data, Set<Connection> cs); public void send_async_parallel(String data, Set<Connection> cs); // Object commands public void send_sync(Object data, Connection c); public void send_async(Object data, Connection c); public void send_sync(Object data, Set<Connection> cs); public void send_async(Object data, Set<Connection> cs); public void send_sync_parallel(Object data, Set<Connection> cs); public void send_async_parallel(Object data, Set<Connection> cs); // Object serialization commands public boolean send_object_sync(Object data, Connection c); public void send_object_async(Object data, Connection c); public void send_object_sync(Object data, Set<Connection> cs); public void send_object_async(Object data, Set<Connection> cs); public boolean send_object_sync_parallel(Object data, Set<Connection> cs); public void send_object_async_parallel(Object data, Set<Connection> cs); // Primitives for master-worker communication public boolean send_object_sync(SeepCommand co, Connection c, Kryo k); public boolean send_object_async(SeepCommand co, Connection c, Kryo k, int numRetries, int reconnectBackOff); public boolean send_object_sync(SeepCommand co, Set<Connection> cs, Kryo k); public boolean send_object_async(SeepCommand co, Set<Connection> cs, Kryo k); public boolean send_object_sync_parallel(SeepCommand data, Set<Connection> cs, Kryo k); public void send_object_async_parallel(SeepCommand data, Set<Connection> cs, Kryo k); }