net.spy.memcached.internal.BulkFuture Maven / Gradle / Ivy
The newest version!
package net.spy.memcached.internal;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
/**
* Additional flexibility for asyncGetBulk
*
*
* This interface is now returned from all asyncGetBulk
* methods. Unlike {@link #get(long, TimeUnit)},
* {@link #getSome(long, TimeUnit)} does not throw
* CheckedOperationTimeoutException, thus allowing retrieval
* of partial results after timeout occurs. This behavior is
* especially useful in case of large multi gets.
*
*
* @param
* @author [email protected]
*/
public interface BulkFuture extends Future {
/**
* @return true if timeout was reached, false otherwise
*/
public boolean isTimeout();
/**
* Wait for the operation to complete and return results.
*
* If operation could not complete within specified
* timeout, partial result is returned. Otherwise, the
* behavior is identical to {@link #get(long, TimeUnit)}
*
* @param timeout the maximum time to wait
* @param unit the time unit of the timeout argument
* @return the computed result
* @throws InterruptedException if the current thread was interrupted while waiting
* @throws ExecutionException if the computation threw an exception
*/
public V getSome(long timeout, TimeUnit unit)
throws InterruptedException, ExecutionException;
}