java.lang.Object
org.elasticsearch.core.AbstractRefCounted
- All Implemented Interfaces:
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 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected abstract voidMethod that is invoked once the reference count reaches zero.final booleandecRef()Decreases the refCount of this instance.final booleanReturnstrueonly if there was at least one active reference when the method was called; if it returnsfalsethen the object is closed; future attempts to acquire references will fail.final voidincRef()Increments the refCount of this instance.static AbstractRefCountedConstruct anAbstractRefCountedwhich runs the givenRunnablewhen all references are released.final intrefCount()Returns the current reference count.protected voidtouch()Called whenever the ref count is incremented or decremented.final booleanTries to increment the refCount of this instance.
-
Field Details
-
ALREADY_CLOSED_MESSAGE
- See Also:
-
-
Constructor Details
-
AbstractRefCounted
protected AbstractRefCounted()
-
-
Method Details
-
incRef
public final void incRef()Description copied from interface:RefCountedIncrements the refCount of this instance.- Specified by:
incRefin interfaceRefCounted- See Also:
-
tryIncRef
public final boolean tryIncRef()Description copied from interface:RefCountedTries to increment the refCount of this instance. This method will returntrueiff the refCount was- Specified by:
tryIncRefin interfaceRefCounted- See Also:
-
decRef
public final boolean decRef()Description copied from interface:RefCountedDecreases 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:
decRefin interfaceRefCounted- Returns:
- returns
trueif the ref count dropped to 0 as a result of calling this method - See Also:
-
hasReferences
public final boolean hasReferences()Description copied from interface:RefCountedReturnstrueonly if there was at least one active reference when the method was called; if it returnsfalsethen the object is closed; future attempts to acquire references will fail.- Specified by:
hasReferencesin interfaceRefCounted- 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
Construct anAbstractRefCountedwhich runs the givenRunnablewhen all references are released.
-