Class RefCount<T>


  • public class RefCount<T>
    extends Object
    Manages reference counting for a given object. Extensions can override release() to do custom logic when reference counting hits 0.
    • Field Detail

      • object

        protected final T object
    • Constructor Detail

      • RefCount

        public RefCount​(T object)
    • Method Detail

      • release

        protected void release()
                        throws IOException
        Called when reference counting hits 0. By default this method does nothing, but extensions can override to e.g. release resources attached to object that is managed by this class.
        Throws:
        IOException
      • decRef

        public final void decRef()
                          throws IOException
        Decrements the reference counting of this object. When reference counting hits 0, calls release().
        Throws:
        IOException
      • get

        public final T get()
      • getRefCount

        public final int getRefCount()
        Returns the current reference count.
      • incRef

        public final void incRef()
        Increments the reference count. Calls to this method must be matched with calls to decRef().