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
A MemoryManager abstraction to provide utilities that may be useful across different MemoryManager implementations.
Since:
2.0
  • Field Details

    • 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 any ThreadLocalPools.
      See Also:
    • monitoringConfig

      protected final DefaultMonitoringConfig<MemoryProbe> monitoringConfig
      Basic monitoring support. Concrete implementations of this class need only to implement the createJmxManagementObject() method to plug into the Grizzly 2.0 JMX framework.
    • maxBufferSize

      protected final int maxBufferSize
  • Constructor Details

    • AbstractMemoryManager

      public AbstractMemoryManager()
      Creates a new AbstractMemoryManager using a max buffer size of 65536.
    • AbstractMemoryManager

      public AbstractMemoryManager(int maxBufferSize)
      Creates a new AbstractMemoryManager using the specified buffer size.
      Parameters:
      maxBufferSize - max size of the maintained buffer.
  • Method Details

    • 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 a Buffer using the provided ThreadLocalPool.
      Parameters:
      threadLocalCache - the ThreadLocalPool to allocate from.
      size - the amount to allocate.
      Returns:
      an memory buffer, or null if the requested size exceeds the remaining free memory of the ThreadLocalPool.
    • createJmxManagementObject

      protected abstract Object createJmxManagementObject()
      Returns:
      the JMX Object used 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 null if the current thread doesn't have a buffer pool associated with it.