Package com.yahoo.jdisc
Class ReferencedResource<T extends SharedResource>
java.lang.Object
com.yahoo.jdisc.ReferencedResource<T>
- All Implemented Interfaces:
AutoCloseable
Utility class for working with reference-counted SharedResource
s.
Sometimes, you may want a method to return both a resource object and
a ResourceReference
that refers the resource object (for later release of the resource).
Java methods cannot return multiple objects, so this class provides Pair-like functionality
for returning both.
Example usage:
ReferencedResource<MyResource> getResource() { final ResourceReference ref = resource.refer(); return new ReferencedResource(resource, ref); } void useResource() { final ReferencedResource<MyResource> referencedResource = getResource(); referencedResource.getResource().use(); referencedResource.getReference().close(); }
This class implements AutoCloseable, so the latter method may also be written as follows:
void useResource() { for (final ReferencedResource<MyResource> referencedResource = getResource()) { referencedResource.getResource().use(); } }
- Author:
- bakksjo
-
Constructor Summary
-
Method Summary
-
Constructor Details
-
ReferencedResource
-
-
Method Details
-
getResource
-
getReference
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
-