pub struct Accessor { /* private fields */ }Expand description
Rust wrapper around ABinderRpc_Accessor objects for RPC binder service management.
Dropping the Accessor will drop the underlying object and the binder it owns.
Implementations§
Source§impl Accessor
impl Accessor
Sourcepub fn new<F>(instance: &str, callback: F) -> Accessor
pub fn new<F>(instance: &str, callback: F) -> Accessor
Create a new accessor that will call the given callback when its connection info is required. The callback object and all objects it captures are owned by the Accessor and will be deleted some time after the Accessor is Dropped. If the callback is being called when the Accessor is Dropped, the callback will not be deleted immediately.
Sourcepub fn from_binder(instance: &str, binder: SpIBinder) -> Option<Accessor>
pub fn from_binder(instance: &str, binder: SpIBinder) -> Option<Accessor>
Creates a new Accessor instance based on an existing Accessor’s binder. This is useful when the Accessor instance is hosted in another process that has the permissions to create the socket connection FD.
The instance argument must match the instance that the original Accessor
is responsible for.
instance must not contain null bytes and is used to create a CString to
pass through FFI.
The binder argument must be a valid binder from an Accessor
Trait Implementations§
impl Send for Accessor
Safety: A Accessor is a wrapper around ABinderRpc_Accessor which is
Sync and Send. As
ABinderRpc_Accessor is threadsafe, this structure is too.
The Fn owned the Accessor has Sync and Send properties
impl Sync for Accessor
Safety: A Accessor is a wrapper around ABinderRpc_Accessor which is
Sync and Send. As ABinderRpc_Accessor is threadsafe, this structure is too.
The Fn owned the Accessor has Sync and Send properties
Auto Trait Implementations§
impl Freeze for Accessor
impl RefUnwindSafe for Accessor
impl Unpin for Accessor
impl UnwindSafe for Accessor
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.