Class RWLockDataStructure

  • All Implemented Interfaces:
    DataStructure

    public class RWLockDataStructure
    extends Object
    implements DataStructure
    ReadWriteLock based datastructure for pool
    Author:
    Jagadish Ramu
    • Field Detail

      • _logger

        protected static final Logger _logger
    • Constructor Detail

      • RWLockDataStructure

        public RWLockDataStructure​(int maxSize,
                                   ResourceHandler handler)
    • Method Detail

      • addResource

        public int addResource​(ResourceAllocator allocator,
                               int count)
                        throws PoolingException
        creates a new resource and adds to the datastructure.
        Specified by:
        addResource in interface DataStructure
        Parameters:
        allocator - ResourceAllocator
        count - Number (units) of resources to create
        Returns:
        int number of resources added.
        Throws:
        PoolingException - when unable to create a resource
      • removeResource

        public void removeResource​(ResourceHandle resource)
        remove the specified resource from the datastructure
        Specified by:
        removeResource in interface DataStructure
        Parameters:
        resource - ResourceHandle
      • returnResource

        public void returnResource​(ResourceHandle resource)
        returns the resource to the datastructure
        Specified by:
        returnResource in interface DataStructure
        Parameters:
        resource - ResourceHandle
      • getFreeListSize

        public int getFreeListSize()
        get the count of free resources in the datastructure
        Specified by:
        getFreeListSize in interface DataStructure
        Returns:
        int count
      • removeAll

        public void removeAll()
        remove & destroy all resources from the datastructure.
        Specified by:
        removeAll in interface DataStructure
      • getResourcesSize

        public int getResourcesSize()
        get total number of resources in the datastructure
        Specified by:
        getResourcesSize in interface DataStructure
        Returns:
        int count
      • setMaxSize

        public void setMaxSize​(int maxSize)
        Set maxSize based on the new max pool size set on the connection pool during a reconfiguration.
        Specified by:
        setMaxSize in interface DataStructure
        Parameters:
        maxSize -
      • getAllResources

        public ArrayList<ResourceHandle> getAllResources()
        Description copied from interface: DataStructure
        Get all resources in the datastructure Note : do not use this for normal usages as it can potentially represent all resources (including the ones in use). This is used under special circumstances where there is a need to process all resources.
        Specified by:
        getAllResources in interface DataStructure
        Returns:
        ArrayList