Class ListDataStructure

  • All Implemented Interfaces:
    DataStructure

    public class ListDataStructure
    extends Object
    implements DataStructure
    List based datastructure that can be used by connection pool
    Author:
    Jagadish Ramu
    • Constructor Detail

    • Method Detail

      • setMaxSize

        public void setMaxSize​(int newMaxSize)
        Set maxSize based on the new max pool size set on the connection pool during a reconfiguration. 1. When permits contained within the dynamic semaphore are greater than 0, maxSize is increased and hence so many permits are released. 2. When permits contained within the dynamic semaphore are less than 0, maxSize has reduced to a smaller value. Hence so many permits are reduced from the semaphore's available limit for the subsequent resource requests to act based on the new configuration.
        Specified by:
        setMaxSize in interface DataStructure
        Parameters:
        newMaxSize -
      • 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
      • getAllResources

        public ArrayList<ResourceHandle> getAllResources()
        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