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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal voidrelease()Release ownership of thisReleasableLivenessManager, allowing any retainedLivenessReferents to cleanup if they no longer have outstanding references.final booleantryManage(@NotNull LivenessReferent referent) Attempt to addreferentto this manager.booleantryUnmanage(@NotNull LivenessReferent referent) If this manager manages referent one or more times, drop one such reference.booleantryUnmanage(@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, waitMethods inherited from interface io.deephaven.engine.liveness.LivenessManager
manage, unmanage, unmanage
-
Constructor Details
-
SingletonLivenessManager
public SingletonLivenessManager() -
SingletonLivenessManager
-
-
Method Details
-
tryManage
Description copied from interface:LivenessManagerAttempt to addreferentto this manager. Will succeed ifreferentis live and if this manager is not aLivenessReferentor is live.- Specified by:
tryManagein interfaceLivenessManager- Parameters:
referent- The referent to add- Returns:
- Whether the referent was in fact added
-
tryUnmanage
Description copied from interface:LivenessManagerIf 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 ifthisis not live.Strongly prefer using
LivenessManager.tryUnmanage(Stream)} when multiple referents should be unmanaged.- Specified by:
tryUnmanagein 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 returnstrueif dropping a reference via this method is supported by the implementation.
-
tryUnmanage
Description copied from interface:LivenessManagerFor 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 ifthisis not live.- Specified by:
tryUnmanagein 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 returnstrueif dropping a reference via this method is supported by the implementation.
-
release
public final void release()Description copied from interface:ReleasableLivenessManagerRelease ownership of thisReleasableLivenessManager, allowing any retainedLivenessReferents to cleanup if they no longer have outstanding references.- Specified by:
releasein interfaceReleasableLivenessManager
-