/*
 * ====================================================================
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 */
package org.apache.http.impl.conn.tsccm;

import java.lang.ref.ReferenceQueue;
import java.util.concurrent.TimeUnit;

import org.apache.http.conn.ClientConnectionOperator;
import org.apache.http.conn.OperatedClientConnection;
import org.apache.http.conn.routing.HttpRoute;
import org.apache.http.impl.conn.AbstractPoolEntry;
import org.apache.http.util.Args;

Basic implementation of a connection pool entry.
Since:4.0
Deprecated:(4.2) use PoolEntry
/** * Basic implementation of a connection pool entry. * * @since 4.0 * * @deprecated (4.2) use {@link org.apache.http.pool.PoolEntry} */
@Deprecated public class BasicPoolEntry extends AbstractPoolEntry { private final long created; private long updated; private final long validUntil; private long expiry; public BasicPoolEntry(final ClientConnectionOperator op, final HttpRoute route, final ReferenceQueue<Object> queue) { super(op, route); Args.notNull(route, "HTTP route"); this.created = System.currentTimeMillis(); this.validUntil = Long.MAX_VALUE; this.expiry = this.validUntil; }
Creates a new pool entry.
Params:
  • op – the connection operator
  • route – the planned route for the connection
/** * Creates a new pool entry. * * @param op the connection operator * @param route the planned route for the connection */
public BasicPoolEntry(final ClientConnectionOperator op, final HttpRoute route) { this(op, route, -1, TimeUnit.MILLISECONDS); }
Creates a new pool entry with a specified maximum lifetime.
Params:
  • op – the connection operator
  • route – the planned route for the connection
  • connTTL – maximum lifetime of this entry, <=0 implies "infinity"
  • timeunit – TimeUnit of connTTL
Since:4.1
/** * Creates a new pool entry with a specified maximum lifetime. * * @param op the connection operator * @param route the planned route for the connection * @param connTTL maximum lifetime of this entry, &lt;=0 implies "infinity" * @param timeunit TimeUnit of connTTL * * @since 4.1 */
public BasicPoolEntry(final ClientConnectionOperator op, final HttpRoute route, final long connTTL, final TimeUnit timeunit) { super(op, route); Args.notNull(route, "HTTP route"); this.created = System.currentTimeMillis(); if (connTTL > 0) { this.validUntil = this.created + timeunit.toMillis(connTTL); } else { this.validUntil = Long.MAX_VALUE; } this.expiry = this.validUntil; } protected final OperatedClientConnection getConnection() { return super.connection; } protected final HttpRoute getPlannedRoute() { return super.route; } protected final BasicPoolEntryRef getWeakRef() { return null; } @Override protected void shutdownEntry() { super.shutdownEntry(); }
Since:4.1
/** * @since 4.1 */
public long getCreated() { return this.created; }
Since:4.1
/** * @since 4.1 */
public long getUpdated() { return this.updated; }
Since:4.1
/** * @since 4.1 */
public long getExpiry() { return this.expiry; } public long getValidUntil() { return this.validUntil; }
Since:4.1
/** * @since 4.1 */
public void updateExpiry(final long time, final TimeUnit timeunit) { this.updated = System.currentTimeMillis(); final long newExpiry; if (time > 0) { newExpiry = this.updated + timeunit.toMillis(time); } else { newExpiry = Long.MAX_VALUE; } this.expiry = Math.min(validUntil, newExpiry); }
Since:4.1
/** * @since 4.1 */
public boolean isExpired(final long now) { return now >= this.expiry; } }