001package com.hammurapi.common.concurrent;
002
003import java.util.concurrent.Future;
004
005/**
006 * Synapse is a liaison between invoker and invocable. Synapse iterates over arguments of type
007 * ArgumentIterator and can perform invocation asynchronously, potentially in a different process,
008 * using provided executor service. Synapse converts arguments to expected argument type if
009 * required, chains invocation property sets and controls length of invocation chain to prevent
010 * infinite invocations. 
011 * @author Pavel Vlasov
012 *
013 * @param <R>
014 */
015public interface Synapse<C, R, K, E extends Exception> extends Invoker<C, R, K, E>, Invocable<C, Future<Iterable<R>>, K, E> {
016
017}