package glaze.client.sync; import glaze.client.Client; import glaze.client.Response; import glaze.client.handlers.ErrorHandler; import glaze.func.Closures.ResponseClosure; import org.apache.http.client.HttpClient; import org.apache.http.client.HttpRequestRetryHandler; import org.apache.http.client.ResponseHandler; import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.conn.scheme.Scheme; import org.apache.http.protocol.HttpContext; /** * Interface for Marmalade synchronous clients. * */ public interface SyncClient extends Client { /** * Executes the request. Please, note that response content must be processed * or discarded using {@link Response#discardContent()}, otherwise the * connection used for the request might not be released to the pool. * * @see Response#asString() * @see Response#asInputStream() * @see Response#with(ResponseClosure) * @see Response#discardContent() */ Response execute(HttpUriRequest request); Response execute(HttpUriRequest build, ErrorHandler errorHandler); Response execute(HttpUriRequest build, ErrorHandler errorHandler, HttpContext context); /** * Executes the request. Please, note that response content must be processed * or discarded using {@link Response#discardContent()}, otherwise the * connection used for the request might not be released to the pool. * * @see Response#asString() * @see Response#asInputStream() * @see Response#with(ResponseClosure) * @see Response#discardContent() */ Response execute(HttpUriRequest request, HttpContext context); /** * @param request * @param handler * @return */ <T> T execute(HttpUriRequest request, ResponseHandler<T> handler); /** * @param request * @param handler * @param context * @return */ <T> T execute(HttpUriRequest request, ResponseHandler<T> handler, HttpContext context); /** * @return underlying HttpClient */ HttpClient getHttpClient(); /** * @param mapRequest * @return */ <T> T map(SyncMap<T> mapRequest); /** * Registers a scheme on the underlying connection manager. * * @param scheme * The scheme name */ void registerScheme(final Scheme scheme); /** * */ void trustSelfSignedCertificates(); /** * Unregisters a scheme on the underlying connection manager. * * @param name * The scheme name */ void unregisterScheme(final String name); Client retryHandler(HttpRequestRetryHandler retryHandler); }