Mercurial > hg > FederatedLinda
view src/fdl/PSXLinda.java @ 97:0ea086f0e96f fuchita
main loop modification, for easy meta engine addition.
add comments.
author | one |
---|---|
date | Wed, 26 May 2010 10:49:50 +0900 |
parents | a1d796c0e975 |
children | efe50b1204f3 |
line wrap: on
line source
package fdl; import java.io.IOException; import java.nio.ByteBuffer; /** * @author kono * */ /** * @author kono * */ /** * @author kono * */ public interface PSXLinda { /** * send IN request to the linda * Tuple with id will be removed, and the value is returned in the reply * @param id * @return wait for this request */ public PSXReply in(int id) ; /** * send IN request and set call back for reply * @param id * @param callback */ public void in(int id, PSXCallback callback); /** * send Check request to the linda * Tuple with id will not be removed, it return even if there is no tuple for * this id * @param id * @return wait for this request */ public PSXReply ck(int id) ; /** * send Check request and set call back for reply * @param id * @param callback */ public void ck(int id, PSXCallback callback) ; /** * send a Tuple to the linda * Tuple may stack in the linda, mutiple out is possible. * No blocking. * this id * @param id * @return wait for this request */ public PSXReply out(int id, ByteBuffer data) ; /** * replace a Tuple in the linda * the old value is returned in the reply * @param id * @return wait for this request */ public PSXReply update(int id, ByteBuffer data) ; /** * send Update request and set call back for reply * @param id * @param callback */ public void update(int id, ByteBuffer data,PSXCallback callback) ; /** * Read the tuple in the linda, do not remove the tuple. * it return it's value * @param id * @return wait for this request */ public PSXReply rd(int id) ; /** * send Read request and set call back for reply * @param id * @param callback */ public void rd(int id, PSXCallback callback) ; /** * Wait for newly incoming tuple for this id. * Existing tuple is ingored. * Read the tuple in the linda, do not remove the tuple. * it return it's value * @param id * @return wait for this request */ public PSXReply waitRd(int i); /** * send Read request and set call back for reply * @param id * @param callback */ public void waitRd(int i, PSXCallback callback); /** * Send all registered reqests, and read incoming replies. * No wait * @return * @throws IOException */ public int sync() throws IOException ; /** * Send all registered reqests, and read incoming replies. * @param mtime wait for mtime msec, if 0 this waits indefinitely. * @return * @throws IOException */ public int sync(long mtime) throws IOException ; /** * Internal use * @param linda * @return */ public PSXLinda add(PSXLinda linda) ; /* * Intenal use * sned data for this port */ public void send(ByteBuffer command, ByteBuffer data); }