Package org.apache.mina.common
Class PooledByteBufferAllocator
- java.lang.Object
-
- org.apache.mina.common.PooledByteBufferAllocator
-
- All Implemented Interfaces:
ByteBufferAllocator
public class PooledByteBufferAllocator extends java.lang.Object implements ByteBufferAllocator
AByteBufferAllocator
which pools allocated buffers.All buffers are allocated with the size of power of 2 (e.g. 16, 32, 64, ...) This means that you cannot simply assume that the actual capacity of the buffer and the capacity you requested are same.
This allocator releases the buffers which have not been in use for a certain period. You can adjust the period by calling
setTimeout(int)
. The default timeout is 1 minute (60 seconds). To release these buffers periodically, a daemon thread is started when a new instance of the allocator is created. You can stop the thread by callingdispose()
.
-
-
Constructor Summary
Constructors Constructor Description PooledByteBufferAllocator()
Creates a new instance with the default timeout.PooledByteBufferAllocator(int timeout)
Creates a new instance with the specified timeout.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ByteBuffer
allocate(int capacity, boolean direct)
Returns the buffer which is capable of the specified size.void
dispose()
Stops the thread which releases unused buffers and make this allocator unusable from now on.int
getTimeout()
Returns the timeout value of this allocator in seconds.long
getTimeoutMillis()
Returns the timeout value of this allocator in milliseconds.void
setTimeout(int timeout)
Sets the timeout value of this allocator in seconds.ByteBuffer
wrap(java.nio.ByteBuffer nioBuffer)
Wraps the specified NIOByteBuffer
into MINA buffer.
-
-
-
Method Detail
-
dispose
public void dispose()
Stops the thread which releases unused buffers and make this allocator unusable from now on.- Specified by:
dispose
in interfaceByteBufferAllocator
-
getTimeout
public int getTimeout()
Returns the timeout value of this allocator in seconds.
-
getTimeoutMillis
public long getTimeoutMillis()
Returns the timeout value of this allocator in milliseconds.
-
setTimeout
public void setTimeout(int timeout)
Sets the timeout value of this allocator in seconds.- Parameters:
timeout
- 0 or negative value to disable timeout.
-
allocate
public ByteBuffer allocate(int capacity, boolean direct)
Description copied from interface:ByteBufferAllocator
Returns the buffer which is capable of the specified size.- Specified by:
allocate
in interfaceByteBufferAllocator
- Parameters:
capacity
- the capacity of the bufferdirect
- true to get a direct buffer, false to get a heap buffer.
-
wrap
public ByteBuffer wrap(java.nio.ByteBuffer nioBuffer)
Description copied from interface:ByteBufferAllocator
Wraps the specified NIOByteBuffer
into MINA buffer.- Specified by:
wrap
in interfaceByteBufferAllocator
-
-