java.lang.Object
org.elasticsearch.core.AbstractRefCounted
- All Implemented Interfaces:
RefCounted
- Direct Known Subclasses:
SimpleRefCounted
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
FieldsFields inherited from interface org.elasticsearch.core.RefCounted
ALWAYS_REFERENCED -
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.final voidSimilar toRefCounted.incRef()except that it also asserts that it managed to acquire the ref, for use in situations where it is a bug if all refs have been released.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:
-
INVALID_DECREF_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:
-
mustIncRef
public final void mustIncRef()Description copied from interface:RefCountedSimilar toRefCounted.incRef()except that it also asserts that it managed to acquire the ref, for use in situations where it is a bug if all refs have been released.- Specified by:
mustIncRefin interfaceRefCounted
-
tryIncRef
public final boolean tryIncRef()Description copied from interface:RefCountedTries to increment the refCount of this instance. This method will returntrueiff the refCount was successfully incremented.- 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.
-