package org.infinispan.distexec;
import java.util.Set;
import java.util.concurrent.Callable;
import org.infinispan.Cache;
/**
* A task that returns a result and may throw an exception capable of being executed in another JVM.
* <p>
*
*
* @see Callable
*
* @author Manik Surtani
* @author Vladimir Blagojevic
*
* @since 5.0
*
*/
public interface DistributedCallable<K, V, T> extends Callable<T> {
/**
* Invoked by execution environment after DistributedCallable has been migrated for execution to
* a specific Infinispan node.
*
* @param cache
* cache whose keys are used as input data for this DistributedCallable task
* @param inputKeys
* keys used as input for this DistributedCallable task
*/
void setEnvironment(Cache<K, V> cache, Set<K> inputKeys);
}