public class Request {
// Nonblocking communication
public Status wait() {...}
public Status test() {...}
public Request() {...}
public void finalize() {...}
public boolean isVoid() {...}
public static Status waitAny(Request [] arrayOfRequests) {...}
public static Status testAny(Request [] arrayOfRequests) {...}
public static Status [] waitAll(Request [] arrayOfRequests) {...}
public static Status [] testAll(Request [] arrayOfRequests) {...}
public static Status [] waitSome(Request [] arrayOfRequests) {...}
public static Status [] testSome(Request [] arrayOfRequests) {...}
// Probe and cancel
public void cancel() {...}
...
}
public class Prequest extends Request {
// Persistent communication requests
public void start() {...}
public static void startAll(Request [] arrayOfRequests) {...}
...
}