1 25 package org.archive.io.arc; 26 27 import java.util.concurrent.atomic.AtomicInteger ; 28 29 import org.apache.commons.pool.BasePoolableObjectFactory; 30 import org.archive.io.WriterPool; 31 import org.archive.io.WriterPoolMember; 32 import org.archive.io.WriterPoolSettings; 33 34 35 40 public class ARCWriterPool extends WriterPool { 41 48 public ARCWriterPool(final WriterPoolSettings settings, 49 final int poolMaximumActive, final int poolMaximumWait) { 50 this(new AtomicInteger (), settings, poolMaximumActive, poolMaximumWait); 51 } 52 53 61 public ARCWriterPool(final AtomicInteger serial, 62 final WriterPoolSettings settings, 63 final int poolMaximumActive, final int poolMaximumWait) { 64 super(serial, new BasePoolableObjectFactory() { 65 public Object makeObject() throws Exception { 66 return new ARCWriter(serial, settings.getOutputDirs(), 67 settings.getPrefix(), settings.getSuffix(), 68 settings.isCompressed(), settings.getMaxSize(), 69 settings.getMetadata()); 70 } 71 72 public void destroyObject(Object arcWriter) 73 throws Exception { 74 ((WriterPoolMember)arcWriter).close(); 75 super.destroyObject(arcWriter); 76 } 77 }, settings, poolMaximumActive, poolMaximumWait); 78 } 79 } | Popular Tags |