RefCounted (apache-cassandra API)
Date: 2018-02-14

org.apache.cassandra.utils.concurrent

## Interface RefCounted<T>

- All Known Subinterfaces:
    SelfRefCounted<T>
  All Known Implementing Classes:
    BigTableReader, Ref, SSTableReader

      public interface RefCounted<T>

  An object that needs ref counting does the two following: - defines a Tidy object that will cleanup once it's gone, (this must retain no references to the object we're tracking (only its resources and how to clean up)) Then, one of two options: 1) Construct a Ref directly pointing to it, and always use this Ref; or 2) - implements RefCounted - encapsulates a Ref, we'll call selfRef, to which it proxies all calls to RefCounted behaviours - users must ensure no references to the selfRef leak, or are retained outside of a method scope. (to ensure the selfRef is collected with the object, so that leaks may be detected and corrected)

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static interface` | `RefCounted.Tidy`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Ref<T>` | `ref()`
    `Ref<T>` | `tryRef()`

- - ### Method Detail

    - #### tryRef

          Ref<T> tryRef()

      Returns:
        the a new Ref() to the managed object, incrementing its refcount, or null if it is already released

    - #### ref

          Ref<T> ref()

Copyright © 2018 The Apache Software Foundation