ndk::
  
    #include <binder_auto_utils.h>
  
Represents one strong pointer to an AIBinder object.
Summary
| Constructors and Destructors | |
|---|---|
| SpAIBinder()Default constructor.  | |
| SpAIBinder(AIBinder *binder)Takes ownership of one strong refcount of binder.  | |
| SpAIBinder(std::nullptr_t)Convenience operator for implicitly constructing an SpAIBinder from nullptr.  | |
| SpAIBinder(const SpAIBinder & other)This will delete the underlying object if it exists.  | |
| ~SpAIBinder()This deletes the underlying object if it exists.  | 
| Public functions | |
|---|---|
| get() const  | AIBinder *This returns the underlying binder object for transactions.  | 
| getR() | AIBinder **This allows the value in this class to be set from beneath it.  | 
| operator=(const SpAIBinder & other) | This takes ownership of a binder from another AIBinder object but it does not affect the ownership of that other object.  | 
| set(AIBinder *binder) | voidTakes ownership of one strong refcount of binder.  | 
Public functions
SpAIBinder
SpAIBinder()
Default constructor.
SpAIBinder
SpAIBinder( AIBinder *binder )
Takes ownership of one strong refcount of binder.
SpAIBinder
SpAIBinder( std::nullptr_t )
Convenience operator for implicitly constructing an SpAIBinder from nullptr.
This is not explicit because it is not taking ownership of anything.
SpAIBinder
SpAIBinder( const SpAIBinder & other )
This will delete the underlying object if it exists.
See operator=.
get
AIBinder * get() const
This returns the underlying binder object for transactions.
If it is used to create another SpAIBinder object, it should first be incremented.
getR
AIBinder ** getR()
This allows the value in this class to be set from beneath it.
If you call this method and then change the value of T*, you must take ownership of the value you are replacing and add ownership to the object that is put in here.
Recommended use is like this: SpAIBinder a; // will be nullptr SomeInitFunction(a.getR()); // value is initialized with refcount
Other usecases are discouraged.
operator=
SpAIBinder & operator=( const SpAIBinder & other )
This takes ownership of a binder from another AIBinder object but it does not affect the ownership of that other object.
set
void set( AIBinder *binder )
Takes ownership of one strong refcount of binder.
~SpAIBinder
~SpAIBinder()
This deletes the underlying object if it exists.
See set.
