package com.google.sitebricks.client;
import com.google.common.util.concurrent.ListenableFuture;
import java.util.concurrent.Executor;
/**
* Synchronous and async http client.
*
* @author Dhanji R. Prasanna (dhanji@gmail.com)
*/
public interface WebClient<T> {
WebResponse get();
WebResponse post(T t);
WebResponse put(T t);
WebResponse patch(T t);
WebResponse delete();
ListenableFuture<WebResponse> get(Executor executor);
ListenableFuture<WebResponse> post(T t, Executor executor);
ListenableFuture<WebResponse> put(T t, Executor executor);
ListenableFuture<WebResponse> patch(T t, Executor executor);
ListenableFuture<WebResponse> delete(Executor executor);
/**
* Close the underlying client.
*/
void close();
}