view src/org/eclipse/jetty/io/AbstractConnection.java @ 840:0f53601ea489

remove ConcurrentHashSet
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 19 Sep 2016 14:20:18 -0600
parents 8e9db0bbf4f9
children 4d9fe9cc554d
line wrap: on
line source

//
//  ========================================================================
//  Copyright (c) 1995-2014 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.io;

import java.io.IOException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public abstract class AbstractConnection implements Connection
{
	private static final Logger LOG = LoggerFactory.getLogger(AbstractConnection.class);

	private final long _timeStamp;
	protected final EndPoint _endp;

	public AbstractConnection(EndPoint endp)
	{
		_endp=(EndPoint)endp;
		_timeStamp = System.currentTimeMillis();
	}

	public AbstractConnection(EndPoint endp,long timestamp)
	{
		_endp=(EndPoint)endp;
		_timeStamp = timestamp;
	}

	public long getTimeStamp()
	{
		return _timeStamp;
	}

	public EndPoint getEndPoint()
	{
		return _endp;
	}

	public void onIdleExpired(long idleForMs)
	{
		try
		{
			LOG.debug("onIdleExpired {}ms {} {}",idleForMs,this,_endp);
			if (_endp.isInputShutdown() || _endp.isOutputShutdown())
				_endp.close();
			else
				_endp.shutdownOutput();
		}
		catch(IOException e)
		{
			LOG.trace("",e);

			try
			{
				_endp.close();
			}
			catch(IOException e2)
			{
				LOG.trace("",e2);
			}
		}
	}

	public String toString()
	{
		return String.format("%s@%x", getClass().getSimpleName(), hashCode());
	}
}