View Javadoc
1 /* Reattore HTTP Server 2 3 Copyright (C) 2002 Michael Hope <michaelh@juju.net.nz> 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 19 $Id: ByteBufferPool.java,v 1.7 2003/02/22 04:29:52 michaelh Exp $ 20 */ 21 22 package juju.reattore.io.impl; 23 24 import java.nio.ByteBuffer; 25 import java.util.*; 26 27 import juju.reattore.util.GaugeStat; 28 29 /*** A pool for a set of ByteBuffers. Primitive. 30 31 @todo Minor: Replace with library. 32 */ 33 public class ByteBufferPool { 34 35 private static GaugeStat allocStat = new GaugeStat(ByteBufferPool.class, "Alloc"); 36 37 private static List pool = new LinkedList(); 38 39 /*** Allocate a buffer of at least minSize in size. 40 41 @param minSize The minimum capacity of the buffer. 42 @return A new, usable buffer. 43 */ 44 public static ByteBuffer allocate(int minSize) { 45 allocStat.inc(); 46 47 if (pool.size() > 0) { 48 for (Iterator i = pool.iterator(); i.hasNext();) { 49 ByteBuffer bb = (ByteBuffer)i.next(); 50 51 if (bb.capacity() >= minSize) { 52 i.remove(); 53 54 return bb; 55 } 56 } 57 } 58 59 /* Didn't find one so create */ 60 return ByteBuffer.allocateDirect(minSize); 61 } 62 63 /*** Return a buffer to the pool. 64 65 @param bb The buffer to return. 66 */ 67 public static void release(ByteBuffer bb) { 68 bb.clear(); 69 pool.add(bb); 70 71 allocStat.dec(); 72 } 73 }

This page was automatically generated by Maven