Class NodeAllocator


  • final class NodeAllocator
    extends java.lang.Object
    NodeAllocator manages an array of nodes which can be reused.
    • Constructor Summary

      Constructors 
      Constructor Description
      NodeAllocator()
      Construct an empty allocator.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int capacity()  
      void close()  
      void freeNode​(Node n)
      Return a node to the allocator.
      void grow​(int percent)
      Expand the node allocator's capacity by certain percent.
      boolean init()
      Initialize the allocator with default values for initial and maximum size.
      boolean init​(int maxSize)
      Initialize the allocator with default values for initial size and the provided maximum size.
      boolean init​(int initSize, int maxSize)
      Initialize the allocator with the given initial and maximum sizes.
      Node newNode()  
      void reset()
      Clear all nodes that this allocator has allocated.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • array

        private Node[] array
      • maxSize

        private int maxSize
      • nAllocated

        private int nAllocated
      • freeList

        private Node freeList
    • Constructor Detail

      • NodeAllocator

        public NodeAllocator()
        Construct an empty allocator. The caller must call init() before using it.
    • Method Detail

      • newNode

        public Node newNode()
      • freeNode

        public void freeNode​(Node n)
        Return a node to the allocator.
      • init

        public boolean init()
        Initialize the allocator with default values for initial and maximum size. Returns false if sufficient memory could not be allocated.
      • init

        public boolean init​(int maxSize)
        Initialize the allocator with default values for initial size and the provided maximum size. Returns false if sufficient memory could not be allocated.
      • init

        public boolean init​(int initSize,
                            int maxSize)
        Initialize the allocator with the given initial and maximum sizes. This method does not check, but assumes that the value of initSize is less than the value of maxSize, and that they are both powers of two. Returns false if sufficient memory could not be allocated.
      • grow

        public void grow​(int percent)
        Expand the node allocator's capacity by certain percent.
      • reset

        public void reset()
        Clear all nodes that this allocator has allocated. The allocator must already have been initialized.
      • close

        public void close()
      • capacity

        public int capacity()