Package org.glassfish.grizzly.memory
Class AbstractMemoryManager<E extends Buffer>
- java.lang.Object
-
- org.glassfish.grizzly.memory.AbstractMemoryManager<E>
-
- All Implemented Interfaces:
MemoryManager<E>,ThreadLocalPoolProvider,MonitoringAware<MemoryProbe>
- Direct Known Subclasses:
ByteBufferManager,HeapMemoryManager
public abstract class AbstractMemoryManager<E extends Buffer> extends Object implements MemoryManager<E>, ThreadLocalPoolProvider
AMemoryManagerabstraction to provide utilities that may be useful across differentMemoryManagerimplementations.- Since:
- 2.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static interfaceAbstractMemoryManager.TrimAwareThis is a marker interface indicating a particularBufferimplementation can be trimmed.
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_MAX_BUFFER_SIZEThe maximum size of the memory pool that is to be maintained by either the MemoryManager itself or anyThreadLocalPools.protected intmaxBufferSizeprotected DefaultMonitoringConfig<MemoryProbe>monitoringConfigBasic monitoring support.-
Fields inherited from interface org.glassfish.grizzly.memory.MemoryManager
DEFAULT_MEMORY_MANAGER
-
-
Constructor Summary
Constructors Constructor Description AbstractMemoryManager()Creates a newAbstractMemoryManagerusing a max buffer size of 65536.AbstractMemoryManager(int maxBufferSize)Creates a newAbstractMemoryManagerusing the specified buffer size.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected ObjectallocateFromPool(ThreadLocalPool threadLocalCache, int size)Allocate aBufferusing the providedThreadLocalPool.protected abstract ObjectcreateJmxManagementObject()intgetMaxBufferSize()intgetReadyThreadBufferSize()Get the size of local thread memory pool.protected static ThreadLocalPoolgetThreadLocalPool()Get thread associated buffer pool.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.glassfish.grizzly.memory.MemoryManager
allocate, allocateAtLeast, reallocate, release, willAllocateDirect
-
Methods inherited from interface org.glassfish.grizzly.monitoring.MonitoringAware
getMonitoringConfig
-
Methods inherited from interface org.glassfish.grizzly.memory.ThreadLocalPoolProvider
createThreadLocalPool
-
-
-
-
Field Detail
-
DEFAULT_MAX_BUFFER_SIZE
public static final int DEFAULT_MAX_BUFFER_SIZE
The maximum size of the memory pool that is to be maintained by either the MemoryManager itself or anyThreadLocalPools.- See Also:
- Constant Field Values
-
monitoringConfig
protected final DefaultMonitoringConfig<MemoryProbe> monitoringConfig
Basic monitoring support. Concrete implementations of this class need only to implement thecreateJmxManagementObject()method to plug into the Grizzly 2.0 JMX framework.
-
maxBufferSize
protected final int maxBufferSize
-
-
Constructor Detail
-
AbstractMemoryManager
public AbstractMemoryManager()
Creates a newAbstractMemoryManagerusing a max buffer size of 65536.
-
AbstractMemoryManager
public AbstractMemoryManager(int maxBufferSize)
Creates a newAbstractMemoryManagerusing the specified buffer size.- Parameters:
maxBufferSize- max size of the maintained buffer.
-
-
Method Detail
-
getReadyThreadBufferSize
public int getReadyThreadBufferSize()
Get the size of local thread memory pool.- Returns:
- the size of local thread memory pool.
-
getMaxBufferSize
public int getMaxBufferSize()
- Returns:
- the max size of the buffer maintained by this
AbstractMemoryManager.
-
allocateFromPool
protected Object allocateFromPool(ThreadLocalPool threadLocalCache, int size)
Allocate aBufferusing the providedThreadLocalPool.- Parameters:
threadLocalCache- theThreadLocalPoolto allocate from.size- the amount to allocate.- Returns:
- an memory buffer, or
nullif the requested size exceeds the remaining free memory of theThreadLocalPool.
-
createJmxManagementObject
protected abstract Object createJmxManagementObject()
- Returns:
- the JMX
Objectused to register/deregister with the JMX runtime.
-
getThreadLocalPool
protected static ThreadLocalPool getThreadLocalPool()
Get thread associated buffer pool.- Returns:
- thread associated buffer pool. This method may return
nullif the current thread doesn't have a buffer pool associated with it.
-
-