/* * Copyright 2009 Mike Cumings * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.kenai.jbosh; /** * This class represents a complete HTTP response to a request made via * a {@code HTTPSender} send request. Instances of this interface are * intended to represent a deferred, future response, not necessarily a * response which is immediately available. */ interface HTTPResponse { /** * Close out any resources still held by the original request. The * conversation may need to be aborted if the session it was a part of * gets abruptly terminated. */ void abort(); /** * Get the HTTP status code of the response (e.g., 200, 404, etc.). If * the response has not yet been received from the remote server, this * method should block until the response has arrived. * * @return HTTP status code * @throws InterruptedException if interrupted while awaiting response */ int getHTTPStatus() throws InterruptedException, BOSHException; /** * Get the HTTP response message body. If the response has not yet been * received from the remote server, this method should block until the * response has arrived. * * @return response message body * @throws InterruptedException if interrupted while awaiting response */ AbstractBody getBody() throws InterruptedException, BOSHException; }