Class JMSConnectorManager.ShareableObjectPool

  • Enclosing class:
    JMSConnectorManager

    public class JMSConnectorManager.ShareableObjectPool
    extends java.lang.Object
    A simple non-blocking pool impl for objects that can be shared. Only a ref count is necessary to prevent collisions at shutdown. Todo: max size, cleanup stale connections
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addObject​(java.lang.Object obj)
      Adds the object to the pool, if not already added
      java.util.Set getElements()  
      void release​(java.lang.Object obj)
      Decrements the connector's reference count
      void removeObject​(java.lang.Object obj)  
      void removeObject​(java.lang.Object obj, long waitTime)
      Removes the object from the pool.
      void reserve​(java.lang.Object obj)
      Marks the connector as in use by incrementing the connector's reference count
      int size()  
      • Methods inherited from class java.lang.Object

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

      • ShareableObjectPool

        public ShareableObjectPool()
    • Method Detail

      • addObject

        public void addObject​(java.lang.Object obj)
        Adds the object to the pool, if not already added
      • removeObject

        public void removeObject​(java.lang.Object obj,
                                 long waitTime)
        Removes the object from the pool. If the object is reserved, waits the specified time before forcibly removing Todo: check expirations with the next request instead of holding up the current request
      • removeObject

        public void removeObject​(java.lang.Object obj)
      • reserve

        public void reserve​(java.lang.Object obj)
                     throws java.lang.Exception
        Marks the connector as in use by incrementing the connector's reference count
        Throws:
        java.lang.Exception
      • release

        public void release​(java.lang.Object obj)
        Decrements the connector's reference count
      • getElements

        public java.util.Set getElements()
      • size

        public int size()