Class AbstractRefCounted

java.lang.Object
org.elasticsearch.core.AbstractRefCounted
All Implemented Interfaces:
RefCounted

public abstract class AbstractRefCounted extends Object implements RefCounted
A basic RefCounted implementation that is initialized with a ref count of 1 and calls closeInternal() once it reaches a 0 ref count.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
     
    protected abstract void
    Method that is invoked once the reference count reaches zero.
    final boolean
    Decreases the refCount of this instance.
    final boolean
    Returns true only if there was at least one active reference when the method was called; if it returns false then the object is closed; future attempts to acquire references will fail.
    final void
    Increments the refCount of this instance.
    of(Runnable onClose)
    Construct an AbstractRefCounted which runs the given Runnable when all references are released.
    final int
    Returns the current reference count.
    protected void
    Called whenever the ref count is incremented or decremented.
    final boolean
    Tries to increment the refCount of this instance.

    Methods inherited from class java.lang.Object

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

  • Constructor Details

    • AbstractRefCounted

      public AbstractRefCounted()
  • Method Details

    • incRef

      public final void incRef()
      Description copied from interface: RefCounted
      Increments the refCount of this instance.
      Specified by:
      incRef in interface RefCounted
      See Also:
    • tryIncRef

      public final boolean tryIncRef()
      Description copied from interface: RefCounted
      Tries to increment the refCount of this instance. This method will return true iff the refCount was
      Specified by:
      tryIncRef in interface RefCounted
      See Also:
    • decRef

      public final boolean decRef()
      Description copied from interface: RefCounted
      Decreases the refCount of this instance. If the refCount drops to 0, then this instance is considered as closed and should not be used anymore.
      Specified by:
      decRef in interface RefCounted
      Returns:
      returns true if the ref count dropped to 0 as a result of calling this method
      See Also:
    • hasReferences

      public final boolean hasReferences()
      Description copied from interface: RefCounted
      Returns true only if there was at least one active reference when the method was called; if it returns false then the object is closed; future attempts to acquire references will fail.
      Specified by:
      hasReferences in interface RefCounted
      Returns:
      whether there are currently any active references to this object.
    • touch

      protected void touch()
      Called whenever the ref count is incremented or decremented. Can be overridden to record access to the instance for debugging purposes.
    • alreadyClosed

      protected void alreadyClosed()
    • refCount

      public final int refCount()
      Returns the current reference count.
    • closeInternal

      protected abstract void closeInternal()
      Method that is invoked once the reference count reaches zero. Implementations of this method must handle all exceptions and may not throw any exceptions.
    • of

      public static AbstractRefCounted of(Runnable onClose)
      Construct an AbstractRefCounted which runs the given Runnable when all references are released.