Package org.quickserver.util.pool

Source Code of org.quickserver.util.pool.ByteBufferObjectFactory

/*
* This file is part of the QuickServer library
* Copyright (C) QuickServer.org
*
* Use, modification, copying and distribution of this software is subject to
* the terms and conditions of the GNU Lesser General Public License.
* You should have received a copy of the GNU LGP License along with this
* library; if not, you can download a copy from <http://www.quickserver.org/>.
*
* For questions, suggestions, bug-reports, enhancement-requests etc.
* visit http://www.quickserver.org
*
*/

package org.quickserver.util.pool;

import java.nio.ByteBuffer;
import org.apache.commons.pool.BasePoolableObjectFactory;

/**
* A factory for creating java.nio.ByteBuffer instances.
* @author Akshathkumar Shetty
* @since 1.3
*/
public class ByteBufferObjectFactory extends BasePoolableObjectFactory {
  int bufferSize = -1;
  boolean useDirectByteBuffer = true;

  public ByteBufferObjectFactory(int bufferSize, boolean useDirectByteBuffer) {
    this.bufferSize = bufferSize;
    this.useDirectByteBuffer = useDirectByteBuffer;
  }

  //Creates an instance that can be returned by the pool.
  public Object makeObject() {
    if(useDirectByteBuffer)
          return ByteBuffer.allocateDirect(bufferSize);
    else
      return ByteBuffer.allocate(bufferSize);
  }

  //Uninitialize an instance to be returned to the pool.
    public void passivateObject(Object obj) {
    ByteBuffer ch = (ByteBuffer)obj;
    ch.clear();
    }

  //Reinitialize an instance to be returned by the pool.
    public void activateObject(Object obj) {
  }
 
  //Destroys an instance no longer needed by the pool.
  public void destroyObject(Object obj) {
    if(obj==null) return;
    passivateObject(obj);
    obj = null;
  }

  //Ensures that the instance is safe to be returned by the pool.
  public boolean validateObject(Object obj) {
    if(obj==null)
      return false;
    else
      return true;
  }
}
TOP

Related Classes of org.quickserver.util.pool.ByteBufferObjectFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.