/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.service.http.api.client.async;
import org.mule.service.http.api.domain.message.response.HttpResponse;
/**
* Handler for receiving an HTTP response asynchronously.
*
* @since 4.0
*/
public interface ResponseHandler {
/**
* Invoked on successful completion of asynchronous processing of an {@link HttpResponse}.
* <p>
* Exceptions found while processing the {@code response} are to be notified through
* the {@code exceptionCallback}, which might (depending on {@code HandledCompletionExceptionResult})
* produce a new value as the result of handling such error
*
* @param response the result of processing
*/
void onCompletion(HttpResponse response);
/**
* Invoked when a failure occurs during asynchronous processing of an {@link HttpResponse}.
*
* @param exception the exception thrown during processing
*/
void onFailure(Exception exception);
}