mobile/android/thirdparty/ch/boye/httpclientandroidlib/impl/conn/tsccm/BasicPoolEntryRef.java

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 /*
     2  * ====================================================================
     3  *
     4  *  Licensed to the Apache Software Foundation (ASF) under one or more
     5  *  contributor license agreements.  See the NOTICE file distributed with
     6  *  this work for additional information regarding copyright ownership.
     7  *  The ASF licenses this file to You under the Apache License, Version 2.0
     8  *  (the "License"); you may not use this file except in compliance with
     9  *  the License.  You may obtain a copy of the License at
    10  *
    11  *      http://www.apache.org/licenses/LICENSE-2.0
    12  *
    13  *  Unless required by applicable law or agreed to in writing, software
    14  *  distributed under the License is distributed on an "AS IS" BASIS,
    15  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    16  *  See the License for the specific language governing permissions and
    17  *  limitations under the License.
    18  * ====================================================================
    19  *
    20  * This software consists of voluntary contributions made by many
    21  * individuals on behalf of the Apache Software Foundation.  For more
    22  * information on the Apache Software Foundation, please see
    23  * <http://www.apache.org/>.
    24  *
    25  */
    27 package ch.boye.httpclientandroidlib.impl.conn.tsccm;
    30 import java.lang.ref.WeakReference;
    31 import java.lang.ref.ReferenceQueue;
    33 import ch.boye.httpclientandroidlib.annotation.Immutable;
    35 import ch.boye.httpclientandroidlib.conn.routing.HttpRoute;
    39 /**
    40  * A weak reference to a {@link BasicPoolEntry BasicPoolEntry}.
    41  * This reference explicitly keeps the planned route, so the connection
    42  * can be reclaimed if it is lost to garbage collection.
    43  *
    44  * @since 4.0
    45  */
    46 @Immutable
    47 public class BasicPoolEntryRef extends WeakReference<BasicPoolEntry> {
    49     /** The planned route of the entry. */
    50     private final HttpRoute route; // HttpRoute is @Immutable
    53     /**
    54      * Creates a new reference to a pool entry.
    55      *
    56      * @param entry   the pool entry, must not be <code>null</code>
    57      * @param queue   the reference queue, or <code>null</code>
    58      */
    59     public BasicPoolEntryRef(BasicPoolEntry entry,
    60                              ReferenceQueue<Object> queue) {
    61         super(entry, queue);
    62         if (entry == null) {
    63             throw new IllegalArgumentException
    64                 ("Pool entry must not be null.");
    65         }
    66         route = entry.getPlannedRoute();
    67     }
    70     /**
    71      * Obtain the planned route for the referenced entry.
    72      * The planned route is still available, even if the entry is gone.
    73      *
    74      * @return      the planned route
    75      */
    76     public final HttpRoute getRoute() {
    77         return this.route;
    78     }
    80 } // class BasicPoolEntryRef

mercurial