1 // 2 // ======================================================================== 3 // Copyright (c) 1995-2014 Mort Bay Consulting Pty. Ltd. 4 // ------------------------------------------------------------------------ 5 // All rights reserved. This program and the accompanying materials 6 // are made available under the terms of the Eclipse Public License v1.0 7 // and Apache License v2.0 which accompanies this distribution. 8 // 9 // The Eclipse Public License is available at 10 // http://www.eclipse.org/legal/epl-v10.html 11 // 12 // The Apache License v2.0 is available at 13 // http://www.opensource.org/licenses/apache2.0.php 14 // 15 // You may elect to redistribute this code under either of these licenses. 16 // ======================================================================== 17 // 18 19 package org.eclipse.jetty.client.api; 20 21 import java.io.Closeable; 22 23 /** 24 * {@link Connection} represent a connection to a {@link Destination} and allow applications to send 25 * requests via {@link #send(Request, Response.CompleteListener)}. 26 * <p /> 27 * {@link Connection}s are normally pooled by {@link Destination}s, but unpooled {@link Connection}s 28 * may be created by applications that want to do their own connection management via 29 * {@link Destination#newConnection(Promise)} and {@link Connection#close()}. 30 */ 31 public interface Connection extends Closeable 32 { 33 /** 34 * Sends a request with an associated response listener. 35 * <p /> 36 * {@link Request#send(Response.CompleteListener)} will eventually call this method to send the request. 37 * It is exposed to allow applications to send requests via unpooled connections. 38 * 39 * @param request the request to send 40 * @param listener the response listener 41 */ 42 void send(Request request, Response.CompleteListener listener); 43 44 @Override 45 void close(); 46 }