Package io.deephaven.engine.liveness
Class SingletonLivenessManager
java.lang.Object
io.deephaven.engine.liveness.SingletonLivenessManager
- All Implemented Interfaces:
LivenessManager
,ReleasableLivenessManager
- Direct Known Subclasses:
ArrowFlightUtil.DoExchangeMarshaller
ReleasableLivenessManager
to manage exactly one object, passed at construction time or managed later.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal void
release()
Release ownership of thisReleasableLivenessManager
, allowing any retainedLivenessReferent
s to cleanup if they no longer have outstanding references.final boolean
tryManage
(@NotNull LivenessReferent referent) Attempt to addreferent
to this manager.boolean
tryUnmanage
(@NotNull LivenessReferent referent) If this manager manages referent one or more times, drop one such reference.boolean
tryUnmanage
(@NotNull Stream<? extends LivenessReferent> referents) For each referent in referents, if this manager manages referent one or more times, drop one such reference.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, unmanage, unmanage
-
Constructor Details
-
SingletonLivenessManager
public SingletonLivenessManager() -
SingletonLivenessManager
-
-
Method Details
-
tryManage
Description copied from interface:LivenessManager
Attempt to addreferent
to this manager. Will succeed ifreferent
is live and if this manager is not aLivenessReferent
or is live.- Specified by:
tryManage
in interfaceLivenessManager
- Parameters:
referent
- The referent to add- Returns:
- Whether the referent was in fact added
-
tryUnmanage
Description copied from interface:LivenessManager
If this manager manages referent one or more times, drop one such reference. If this manager is also aLivenessReferent
, then this method is a no-op ifthis
is not live.- Specified by:
tryUnmanage
in interfaceLivenessManager
- Parameters:
referent
- The referent to drop- Returns:
- If this node is also a
LivenessReferent
, whether this node was live and thus in fact tried to drop a reference. Else always returnstrue
if dropping a reference via this method is supported by the implementation.
-
tryUnmanage
Description copied from interface:LivenessManager
For each referent in referents, if this manager manages referent one or more times, drop one such reference. If this manager is also aLivenessReferent
, then this method is a no-op ifthis
is not live.- Specified by:
tryUnmanage
in interfaceLivenessManager
- Parameters:
referents
- The referents to drop- Returns:
- If this node is also a
LivenessReferent
, whether this node was live and thus in fact tried to drop the references. Else always returnstrue
if dropping a reference via this method is supported by the implementation.
-
release
public final void release()Description copied from interface:ReleasableLivenessManager
Release ownership of thisReleasableLivenessManager
, allowing any retainedLivenessReferent
s to cleanup if they no longer have outstanding references.- Specified by:
release
in interfaceReleasableLivenessManager
-