pub struct BnTrustedApp(/* private fields */);
Expand description
A binder Remotable
that holds an ITrustedApp
object.
Implementations§
Source§impl BnTrustedApp
impl BnTrustedApp
Sourcepub fn new_binder<T: ITrustedApp + Sync + Send + 'static>(
inner: T,
features: BinderFeatures,
) -> Strong<dyn ITrustedApp>
pub fn new_binder<T: ITrustedApp + Sync + Send + 'static>( inner: T, features: BinderFeatures, ) -> Strong<dyn ITrustedApp>
Create a new binder service.
Sourcepub fn downcast_binder<T: ITrustedApp>(&self) -> Option<&T>
pub fn downcast_binder<T: ITrustedApp>(&self) -> Option<&T>
Tries to downcast the interface to another type. When receiving this object from a binder call, make sure that the object received is a binder native object and that is of the right type for the Downcast:
let binder = received_object.as_binder();
if !binder.is_remote() {
let binder_native: Binder
Handle the error cases instead of just calling unwrap
or expect
to prevent a
malicious caller to mount a Denial of Service attack.
Source§impl BnTrustedApp
impl BnTrustedApp
Sourcepub fn new_async_binder<T, R>(
inner: T,
rt: R,
features: BinderFeatures,
) -> Strong<dyn ITrustedApp>where
T: ITrustedAppAsyncServer + Interface + Send + Sync + 'static,
R: BinderAsyncRuntime + Send + Sync + 'static,
pub fn new_async_binder<T, R>(
inner: T,
rt: R,
features: BinderFeatures,
) -> Strong<dyn ITrustedApp>where
T: ITrustedAppAsyncServer + Interface + Send + Sync + 'static,
R: BinderAsyncRuntime + Send + Sync + 'static,
Create a new async binder service.
pub fn try_into_local_async<P: BinderAsyncPool + 'static>( _native: Binder<Self>, ) -> Option<Strong<dyn ITrustedAppAsync<P>>>
Trait Implementations§
Source§impl Remotable for BnTrustedApp
impl Remotable for BnTrustedApp
Source§fn get_descriptor() -> &'static str
fn get_descriptor() -> &'static str
The Binder interface descriptor string. Read more
Source§fn on_transact(
&self,
code: TransactionCode,
data: &BorrowedParcel<'_>,
reply: &mut BorrowedParcel<'_>,
) -> Result<(), StatusCode>
fn on_transact( &self, code: TransactionCode, data: &BorrowedParcel<'_>, reply: &mut BorrowedParcel<'_>, ) -> Result<(), StatusCode>
Handle and reply to a request to invoke a transaction on this object. Read more
Source§fn on_dump(
&self,
writer: &mut dyn Write,
args: &[&CStr],
) -> Result<(), StatusCode>
fn on_dump( &self, writer: &mut dyn Write, args: &[&CStr], ) -> Result<(), StatusCode>
Handle a request to invoke the dump transaction on this
object.
Source§fn get_class() -> InterfaceClass
fn get_class() -> InterfaceClass
Retrieve the class of this remote object. Read more
Auto Trait Implementations§
impl Freeze for BnTrustedApp
impl !RefUnwindSafe for BnTrustedApp
impl Send for BnTrustedApp
impl Sync for BnTrustedApp
impl Unpin for BnTrustedApp
impl !UnwindSafe for BnTrustedApp
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
Mutably borrows from an owned value. Read more
§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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.