view src/org/eclipse/jetty/http/HttpBuffersImpl.java @ 1006:58a9c4a42292

simplify Buffers code
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 23 Oct 2016 17:21:20 -0600
parents 0e96ce3db20a
children
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.http;

import org.eclipse.jetty.io.Buffers;
import org.eclipse.jetty.io.BuffersFactory;
import org.eclipse.jetty.util.component.AbstractLifeCycle;

/* ------------------------------------------------------------ */
/** Abstract Buffer pool.
 * simple unbounded pool of buffers for header, request and response sizes.
 *
 */
public final class HttpBuffersImpl extends AbstractLifeCycle
{
	private int _requestBufferSize=16*1024;
	private int _requestHeaderSize=6*1024;
	private int _responseBufferSize=32*1024;
	private int _responseHeaderSize=6*1024;
	private final int _maxBuffers=1024;
	
	private Buffers.Type _requestBufferType=Buffers.Type.DIRECT;
	private Buffers.Type _responseBufferType=Buffers.Type.DIRECT;
	
	private Buffers _requestBuffers;
	private Buffers _responseBuffers;
	
	
	public int getRequestBufferSize()
	{
		return _requestBufferSize;
	}
	
	public void setRequestBufferSize(int requestBufferSize)
	{
		_requestBufferSize = requestBufferSize;
	}

	public int getRequestHeaderSize()
	{
		return _requestHeaderSize;
	}

	public void setRequestHeaderSize(int requestHeaderSize)
	{
		_requestHeaderSize = requestHeaderSize;
	}

	public Buffers.Type getRequestBufferType()
	{
		return _requestBufferType;
	}

	public void setRequestBufferType(Buffers.Type requestBufferType)
	{
		_requestBufferType = requestBufferType;
	}

	public void setResponseBufferType(Buffers.Type responseBufferType)
	{
		_responseBufferType = responseBufferType;
	}

	@Override
	protected void doStart()
		throws Exception
	{
		_requestBuffers = BuffersFactory.newBuffers(Buffers.Type.INDIRECT,_requestHeaderSize,_requestBufferType,_requestBufferSize,_maxBuffers);
		_responseBuffers = BuffersFactory.newBuffers(Buffers.Type.INDIRECT,_responseHeaderSize,_responseBufferType,_responseBufferSize,_maxBuffers);
		super.doStart();
	}
	
	@Override
	protected void doStop()
		throws Exception
	{
		_requestBuffers=null;
		_responseBuffers=null;
	}

	public Buffers getRequestBuffers()
	{
		return _requestBuffers;
	}
	

	public Buffers getResponseBuffers()
	{
		return _responseBuffers;
	}

	@Override
	public String toString()
	{
		return _requestBuffers+"/"+_responseBuffers;
	}
}