Class AbstractResource
- All Implemented Interfaces:
SharedResource
- Direct Known Subclasses:
AbstractRequestHandler
,AbstractServerProvider
,ActiveContainer
,Request
,ResourcePool
SharedResource
interface, and should be used for
all subclasses of RequestHandler
, ClientProvider
and ServerProvider
. Once the reference count
of this resource reaches zero, the destroy()
method is called.- Author:
- Simon Thoresen Hult
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.yahoo.jdisc.SharedResource
SharedResource.Debug
-
Field Summary
Fields inherited from interface com.yahoo.jdisc.SharedResource
DEBUG, SYSTEM_PROPERTY_NAME_DEBUG
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns a string describing the current state of references in human-friendly terms.protected void
destroy()
This method signals that this AbstractResource can dispose of any internal resources, and commence with shut down of any internal threads.final ResourceReference
refer()
Creates a reference to this resource.final ResourceReference
Creates a reference to this resource.final void
release()
Releases the "main" reference to this resource (the implicit reference due to creation of the object).final int
Returns the reference count of this resource.
-
Constructor Details
-
AbstractResource
protected AbstractResource()
-
-
Method Details
-
refer
Description copied from interface:SharedResource
Creates a reference to this resource. You call this method to prevent an object from being destroyed until you have finished using it.
You MUST keep the returned
ResourceReference
object and release the reference by callingResourceReference.close()
on it. A reference created by this method can NOT be released by callingSharedResource.release()
.- Specified by:
refer
in interfaceSharedResource
- See Also:
-
refer
Description copied from interface:SharedResource
Creates a reference to this resource. You call this method to prevent an object from being destroyed until you have finished using it. You can attach a context that will live as long as the reference.
- Specified by:
refer
in interfaceSharedResource
- Parameters:
context
- A context to be associated with the reference. It should give some clue as to who referenced it.You MUST keep the returned
ResourceReference
object and release the reference by callingResourceReference.close()
on it. A reference created by this method can NOT be released by callingSharedResource.release()
.- See Also:
-
release
public final void release()Description copied from interface:SharedResource
Releases the "main" reference to this resource (the implicit reference due to creation of the object).
References obtained by calling
SharedResource.refer()
must be released by callingResourceReference.close()
on theResourceReference
returned fromSharedResource.refer()
, NOT by calling this method. You call this method once you are done using an object that you have previously caused instantiation of.- Specified by:
release
in interfaceSharedResource
- See Also:
-
retainCount
public final int retainCount()Returns the reference count of this resource. This typically has no value for other than single-threaded unit- tests, as it is merely a snapshot of the counter.
- Returns:
- The current value of the reference counter.
-
destroy
protected void destroy()This method signals that this AbstractResource can dispose of any internal resources, and commence with shut down of any internal threads. This will be called once the reference count of this resource reaches zero.
-
currentState
Returns a string describing the current state of references in human-friendly terms. May be used for debugging.
-