template <bool EnableAdoptionValidator>

class RefCountedUpgradeableBase

Defined at line 23 of file ../../zircon/system/ulib/fbl/include/fbl/ref_counted_upgradeable.h

A variant of the standard RefCouted base class which allows an

"UpgradeFromRaw" operation which can be used to give weak-pointer like

behavior for very specific use cases.

Public Methods

void RefCountedUpgradeableBase<EnableAdoptionValidator> ()

Defined at line 25 of file ../../zircon/system/ulib/fbl/include/fbl/ref_counted_upgradeable.h

void ~RefCountedUpgradeableBase<EnableAdoptionValidator> ()

Defined at line 26 of file ../../zircon/system/ulib/fbl/include/fbl/ref_counted_upgradeable.h

void RefCountedUpgradeableBase<EnableAdoptionValidator> (const RefCountedUpgradeableBase<EnableAdoptionValidator> & )

RefCountedUpgradeableBase

<

> instances may not be copied, assigned or moved.

Defined at line 29 of file ../../zircon/system/ulib/fbl/include/fbl/ref_counted_upgradeable.h

void RefCountedUpgradeableBase<EnableAdoptionValidator> (RefCountedUpgradeableBase<EnableAdoptionValidator> && )

RefCountedUpgradeableBase

<

> instances may not be copied, assigned or moved.

Defined at line 29 of file ../../zircon/system/ulib/fbl/include/fbl/ref_counted_upgradeable.h

RefCountedUpgradeableBase<EnableAdoptionValidator> & operator= (const RefCountedUpgradeableBase<EnableAdoptionValidator> & )

RefCountedUpgradeableBase

<

> instances may not be copied, assigned or moved.

Defined at line 29 of file ../../zircon/system/ulib/fbl/include/fbl/ref_counted_upgradeable.h

RefCountedUpgradeableBase<EnableAdoptionValidator> & operator= (RefCountedUpgradeableBase<EnableAdoptionValidator> && )

RefCountedUpgradeableBase

<

> instances may not be copied, assigned or moved.

Defined at line 29 of file ../../zircon/system/ulib/fbl/include/fbl/ref_counted_upgradeable.h

bool AddRefMaybeInDestructor ()

This method must only be called from MakeRefPtrUpgradeFromRaw. See its

comments for details in the proper use of this method. The actual job of

this function is to atomically increment the refcount if the refcount is

greater than zero.

This method returns false if the object was found with an invalid

refcount (refcount was

<

= 0), and true if the refcount was not zero and

it was incremented.

The procedure used is the while-CAS loop with the advantage that

compare_exchange on failure updates |old| on failure (to exchange) so the

loop does not have to do a separate load.

Defined at line 44 of file ../../zircon/system/ulib/fbl/include/fbl/ref_counted_upgradeable.h