You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pr...@apache.org on 2006/04/28 22:57:57 UTC
svn commit: r398004 -
/directory/trunks/mina/core/src/main/java/org/apache/mina/common/ByteBuffer.java
Author: proyal
Date: Fri Apr 28 13:57:56 2006
New Revision: 398004
URL: http://svn.apache.org/viewcvs?rev=398004&view=rev
Log:
Allow user control over whether or not direct buffers are used
Modified:
directory/trunks/mina/core/src/main/java/org/apache/mina/common/ByteBuffer.java
Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/common/ByteBuffer.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/common/ByteBuffer.java?rev=398004&r1=398003&r2=398004&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/common/ByteBuffer.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/common/ByteBuffer.java Fri Apr 28 13:57:56 2006
@@ -150,11 +150,14 @@
* @version $Rev$, $Date$
*
* @see ByteBufferAllocator
+ * @noinspection StaticNonFinalField
*/
public abstract class ByteBuffer implements Comparable
{
private static ByteBufferAllocator allocator = new PooledByteBufferAllocator();
+ private static boolean useDirectBuffers = true;
+
/**
* Returns the current allocator which manages the allocated buffers.
*/
@@ -183,6 +186,16 @@
}
}
+ public static boolean isUseDirectBuffers()
+ {
+ return useDirectBuffers;
+ }
+
+ public static void setUseDirectBuffers( boolean useDirectBuffers )
+ {
+ ByteBuffer.useDirectBuffers = useDirectBuffers;
+ }
+
/**
* Returns the direct or heap buffer which is capable of the specified
* size. This method tries to allocate direct buffer first, and then
@@ -193,16 +206,20 @@
*/
public static ByteBuffer allocate( int capacity )
{
- try
+ if( useDirectBuffers )
{
- // first try to allocate direct buffer
- return allocate( capacity, true );
- }
- catch( OutOfMemoryError e )
- {
- // if failed, try heap
- return allocate( capacity, false );
+ try
+ {
+ // first try to allocate direct buffer
+ return allocate( capacity, true );
+ }
+ catch( OutOfMemoryError e )
+ {
+ // fall through to heap buffer
+ }
}
+
+ return allocate( capacity, false );
}
/**