template <typename T>
class sp
Defined at line 31 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
---------------------------------------------------------------------------
Public Methods
void sp<T> ()
Defined at line 33 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
T * release ()
Releases the ownership of the object managed by this instance of sp, if any.
The caller is now responsible for managing it. That is, the caller must ensure
decStrong() is called when the pointer is no longer used.
Defined at line 104 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
T & operator* ()
Accessors
Defined at line 112 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
T * operator-> ()
Defined at line 113 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
T * get ()
Defined at line 114 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
bool operator bool ()
Defined at line 115 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename U>
bool operator== (const wp<U> & o)
Punt these to the wp
<
> implementation.
Defined at line 119 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename U>
bool operator!= (const wp<U> & o)
Defined at line 124 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename... Args>
sp<T> make (Args &&... args)
The old way of using sp
<
> was like this. This is bad because it relies
on implicit conversion to sp
<
>, which we would like to remove (if an
object is being managed some other way, this is double-ownership). We
want to move away from this:
sp
<Foo
> foo = new Foo(...); // DO NOT DO THIS
Instead, prefer to do this:
sp
<Foo
> foo = sp
<Foo
>::make(...); // DO THIS
Sometimes, in order to use this, when a constructor is marked as private,
you may need to add this to your class:
friend class sp
<Foo
>;
Defined at line 202 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
sp<T> fromExisting (T * other)
if nullptr, returns nullptr
if a strong pointer is already available, this will retrieve it,
otherwise, this will abort
Defined at line 212 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
void sp<T> (T * other)
Defined at line 224 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename U>
void sp<T> (U * other)
Defined at line 232 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
sp<T> & operator= (T * other)
Defined at line 240 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename U>
sp<T> & operator= (U * other)
Defined at line 334 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
void sp<T> (const sp<T> & other)
Defined at line 253 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
void sp<T> (sp<T> && other)
Defined at line 260 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename U>
void sp<T> (const sp<U> & other)
Defined at line 265 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename U>
void sp<T> (sp<U> && other)
Defined at line 272 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename U>
sp<T> cast (const sp<U> & other)
Cast a strong pointer directly from one type to another. Constructors
allow changing types, but only if they are pointer-compatible. This does
a static_cast internally.
Defined at line 278 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
void ~sp<T> ()
Defined at line 284 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
sp<T> & operator= (const sp<T> & other)
Assignment
Defined at line 290 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
sp<T> & operator= (sp<T> && other)
Defined at line 302 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename U>
sp<T> & operator= (const sp<U> & other)
Defined at line 312 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
template <typename U>
sp<T> & operator= (sp<U> && other)
Defined at line 323 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
void force_set (T * other)
Special optimization for use by ProcessState (and nobody else).
Defined at line 345 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
void clear ()
Reset
Defined at line 351 of file ../../third_party/android/platform/system/core/include/utils/StrongPointer.h
Friends
template <typename Y>
class wp
template <typename Y>
class sp