package org.gcube.common.clients.delegates; import org.gcube.common.clients.Call; import org.gcube.common.clients.config.ProxyConfig; /** * Makes {@link Call}s to service endpoints on behalf a service proxy. *
* Delegates obtain the addresses of service endpoints according to some strategy, using information
* found in their {@link ProxyConfig}.
*
* @author Fabio Simeoni
*
* @param the type of service stubs
*
* @see Call
*/
public interface ProxyDelegate {
/**
* Makes a {@link Call} to a given service endpoint.
*
* @param call the call
* @param call) throws Exception;
/**
* Returns the configuration of the proxy.
* @return the configuration
*/
ProxyConfig,S> config();
}