view src/org/eclipse/jetty/http/HttpBuffersImpl.java @ 840:0f53601ea489

remove ConcurrentHashSet
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 19 Sep 2016 14:20:18 -0600
parents 3428c60d7cfc
children 688b875e18ba
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 class HttpBuffersImpl extends AbstractLifeCycle implements HttpBuffers
{
    private int _requestBufferSize=16*1024;
    private int _requestHeaderSize=6*1024;
    private int _responseBufferSize=32*1024;
    private int _responseHeaderSize=6*1024;
    private int _maxBuffers=1024;
    
    private Buffers.Type _requestBufferType=Buffers.Type.BYTE_ARRAY;
    private Buffers.Type _requestHeaderType=Buffers.Type.BYTE_ARRAY;
    private Buffers.Type _responseBufferType=Buffers.Type.BYTE_ARRAY;
    private Buffers.Type _responseHeaderType=Buffers.Type.BYTE_ARRAY;
    
    private Buffers _requestBuffers;
    private Buffers _responseBuffers;
    
    
    public HttpBuffersImpl()
    {
        super();
    }
    
    /**
     * @return the requestBufferSize
     */
    public int getRequestBufferSize()
    {
        return _requestBufferSize;
    }
    
    /**
     * @param requestBufferSize the requestBufferSize to set
     */
    public void setRequestBufferSize(int requestBufferSize)
    {
        _requestBufferSize = requestBufferSize;
    }

    /**
     * @return the requestHeaderSize
     */
    public int getRequestHeaderSize()
    {
        return _requestHeaderSize;
    }

    /**
     * @param requestHeaderSize the requestHeaderSize to set
     */
    public void setRequestHeaderSize(int requestHeaderSize)
    {
        _requestHeaderSize = requestHeaderSize;
    }

    /**
     * @return the responseBufferSize
     */
    public int getResponseBufferSize()
    {
        return _responseBufferSize;
    }

    /**
     * @param responseBufferSize the responseBufferSize to set
     */
    public void setResponseBufferSize(int responseBufferSize)
    {
        _responseBufferSize = responseBufferSize;
    }

    /**
     * @return the responseHeaderSize
     */
    public int getResponseHeaderSize()
    {
        return _responseHeaderSize;
    }

    /**
     * @param responseHeaderSize the responseHeaderSize to set
     */
    public void setResponseHeaderSize(int responseHeaderSize)
    {
        _responseHeaderSize = responseHeaderSize;
    }

    /**
     * @return the requestBufferType
     */
    public Buffers.Type getRequestBufferType()
    {
        return _requestBufferType;
    }

    /**
     * @param requestBufferType the requestBufferType to set
     */
    public void setRequestBufferType(Buffers.Type requestBufferType)
    {
        _requestBufferType = requestBufferType;
    }

    /**
     * @return the requestHeaderType
     */
    public Buffers.Type getRequestHeaderType()
    {
        return _requestHeaderType;
    }

    /**
     * @param requestHeaderType the requestHeaderType to set
     */
    public void setRequestHeaderType(Buffers.Type requestHeaderType)
    {
        _requestHeaderType = requestHeaderType;
    }

    /**
     * @return the responseBufferType
     */
    public Buffers.Type getResponseBufferType()
    {
        return _responseBufferType;
    }

    /**
     * @param responseBufferType the responseBufferType to set
     */
    public void setResponseBufferType(Buffers.Type responseBufferType)
    {
        _responseBufferType = responseBufferType;
    }

    /**
     * @return the responseHeaderType
     */
    public Buffers.Type getResponseHeaderType()
    {
        return _responseHeaderType;
    }

    /**
     * @param responseHeaderType the responseHeaderType to set
     */
    public void setResponseHeaderType(Buffers.Type responseHeaderType)
    {
        _responseHeaderType = responseHeaderType;
    }

    /**
     * @param requestBuffers the requestBuffers to set
     */
    public void setRequestBuffers(Buffers requestBuffers)
    {
        _requestBuffers = requestBuffers;
    }

    /**
     * @param responseBuffers the responseBuffers to set
     */
    public void setResponseBuffers(Buffers responseBuffers)
    {
        _responseBuffers = responseBuffers;
    }

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

    public Buffers getRequestBuffers()
    {
        return _requestBuffers;
    }
    

    public Buffers getResponseBuffers()
    {
        return _responseBuffers;
    }

    public void setMaxBuffers(int maxBuffers)
    {
        _maxBuffers = maxBuffers;
    }

    public int getMaxBuffers()
    {
        return _maxBuffers;
    }
    
    public String toString()
    {
        return _requestBuffers+"/"+_responseBuffers;
    }
}