pub struct BnHostProxy(/* private fields */);
Expand description
A binder Remotable
that holds an IHostProxy
object.
Implementations§
Source§impl BnHostProxy
impl BnHostProxy
Sourcepub fn new_binder<T: IHostProxy + Sync + Send + 'static>(
inner: T,
features: BinderFeatures,
) -> Strong<dyn IHostProxy>
pub fn new_binder<T: IHostProxy + Sync + Send + 'static>( inner: T, features: BinderFeatures, ) -> Strong<dyn IHostProxy>
Create a new binder service.
Sourcepub fn downcast_binder<T: IHostProxy>(&self) -> Option<&T>
pub fn downcast_binder<T: IHostProxy>(&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 BnHostProxy
impl BnHostProxy
Sourcepub fn new_async_binder<T, R>(
inner: T,
rt: R,
features: BinderFeatures,
) -> Strong<dyn IHostProxy>where
T: IHostProxyAsyncServer + Interface + Send + Sync + 'static,
R: BinderAsyncRuntime + Send + Sync + 'static,
pub fn new_async_binder<T, R>(
inner: T,
rt: R,
features: BinderFeatures,
) -> Strong<dyn IHostProxy>where
T: IHostProxyAsyncServer + 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 IHostProxyAsync<P>>>
Trait Implementations§
Source§impl Remotable for BnHostProxy
impl Remotable for BnHostProxy
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 BnHostProxy
impl !RefUnwindSafe for BnHostProxy
impl Send for BnHostProxy
impl Sync for BnHostProxy
impl Unpin for BnHostProxy
impl !UnwindSafe for BnHostProxy
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.