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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§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>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§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.§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.