All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.jetty.client.ConnectionPool Maven / Gradle / Ivy

There is a newer version: 12.0.13
Show newest version
//
//  ========================================================================
//  Copyright (c) 1995-2019 Mort Bay Consulting Pty. Ltd.
//  ------------------------------------------------------------------------
//  All rights reserved. This program and the accompanying materials
//  are made available under the terms of the Eclipse Public License v1.0
//  and Apache License v2.0 which accompanies this distribution.
//
//      The Eclipse Public License is available at
//      http://www.eclipse.org/legal/epl-v10.html
//
//      The Apache License v2.0 is available at
//      http://www.opensource.org/licenses/apache2.0.php
//
//  You may elect to redistribute this code under either of these licenses.
//  ========================================================================
//

package org.eclipse.jetty.client;

import java.io.Closeable;

import org.eclipse.jetty.client.api.Connection;

/**
 * 

Client-side connection pool abstraction.

*/ public interface ConnectionPool extends Closeable { /** * @param connection the connection to test * @return whether the given connection is currently in use */ boolean isActive(Connection connection); /** * @return whether this ConnectionPool has no open connections */ boolean isEmpty(); /** * @return whether this ConnectionPool has been closed * @see #close() */ boolean isClosed(); /** *

Returns an idle connection, if available, or schedules the opening * of a new connection and returns {@code null}.

* * @return an available connection, or null */ Connection acquire(); /** *

Returns the given connection, previously obtained via {@link #acquire()}, * back to this ConnectionPool.

* * @param connection the connection to release * @return true if the connection has been released, false if the connection * should be closed */ boolean release(Connection connection); /** *

Removes the given connection from this ConnectionPool.

* * @param connection the connection to remove * @return true if the connection was removed from this ConnectionPool */ boolean remove(Connection connection); /** * Closes this ConnectionPool. * * @see #isClosed() */ @Override void close(); /** * Factory for ConnectionPool instances. */ interface Factory { /** * Creates a new ConnectionPool for the given destination. * * @param destination the destination to create the ConnectionPool for * @return the newly created ConnectionPool */ ConnectionPool newConnectionPool(HttpDestination destination); } /** * Marks a connection pool as supporting multiplexed connections. */ interface Multiplexable { /** * @return the max number of requests multiplexable on a single connection */ int getMaxMultiplex(); /** * @param maxMultiplex the max number of requests multiplexable on a single connection */ void setMaxMultiplex(int maxMultiplex); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy