public class DualReferenceCounted extends Object implements MonitorReferenceCounted
INIT
Constructor and Description |
---|
DualReferenceCounted(ReferenceCountedTracer a,
ReferenceCountedTracer b) |
Modifier and Type | Method and Description |
---|---|
StackTrace |
createdHere() |
int |
refCount()
Returns the reference count for this resource.
|
int |
referenceId() |
String |
referenceName() |
void |
release(ReferenceOwner id)
Releases a resource.
|
void |
releaseLast(ReferenceOwner id)
Releases a resource and checks this is the last usage.
|
void |
reserve(ReferenceOwner id)
Reserves a resource or throws an Exception.
|
boolean |
reservedBy(ReferenceOwner owner)
Best effort check the owner has reserved it.
|
void |
reserveTransfer(ReferenceOwner from,
ReferenceOwner to) |
void |
throwExceptionIfNotReleased() |
void |
throwExceptionIfReleased() |
boolean |
tryReserve(ReferenceOwner id)
Tries to reserve a resource and returns if the resource could
be successfully reserved.
|
void |
warnAndReleaseIfNotReleased() |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
onReleased
releaseLast
temporary
public DualReferenceCounted(ReferenceCountedTracer a, ReferenceCountedTracer b)
public void warnAndReleaseIfNotReleased()
warnAndReleaseIfNotReleased
in interface ReferenceCountedTracer
public void throwExceptionIfNotReleased()
throwExceptionIfNotReleased
in interface ReferenceCountedTracer
public StackTrace createdHere()
createdHere
in interface ReferenceCountedTracer
public boolean reservedBy(ReferenceOwner owner)
ReferenceCounted
reservedBy
in interface ReferenceCounted
owner
- to checkpublic void reserve(ReferenceOwner id) throws IllegalStateException
ReferenceCounted
Each invocation of this method increases the reference count by one.
reserve
in interface ReferenceCounted
id
- unique id for this reserveIllegalStateException
- if the resource has already been freed.
I.e. its reference counter has as some point reached zero.public boolean tryReserve(ReferenceOwner id) throws IllegalStateException
ReferenceCounted
Each invocation of this method increases the reference count by one.
tryReserve
in interface ReferenceCounted
id
- unique id for this reserveIllegalStateException
- if the resource has already been freed.
I.e. its reference counter has as some point reached zero.public void release(ReferenceOwner id) throws IllegalStateException
ReferenceCounted
Each invocation of this method decreases the reference count by one.
release
in interface ReferenceCounted
id
- unique id for the reserve to be releasedIllegalStateException
- if the resource has already been freed.
I.e. its reference counter has as some point reached zero.public void releaseLast(ReferenceOwner id) throws IllegalStateException
ReferenceCounted
Each invocation of this method decreases the reference count by one.
releaseLast
in interface ReferenceCounted
id
- unique id for the reserve to be releasedIllegalStateException
- if the resource has already been freed.
I.e. its reference counter has as some point reached zero.public int refCount()
ReferenceCounted
refCount
in interface ReferenceCounted
public void throwExceptionIfReleased() throws IllegalStateException
throwExceptionIfReleased
in interface ReferenceCountedTracer
IllegalStateException
public void reserveTransfer(ReferenceOwner from, ReferenceOwner to) throws IllegalStateException
reserveTransfer
in interface ReferenceCounted
IllegalStateException
public int referenceId()
referenceId
in interface ReferenceOwner
public String referenceName()
referenceName
in interface ReferenceOwner
Copyright © 2020. All rights reserved.