pub struct RpcServer(/* private fields */);
Expand description
A type that represents a foreign instance of RpcServer.
Implementations§
Source§impl RpcServer
impl RpcServer
Sourcepub fn new_vsock(
service: SpIBinder,
cid: u32,
port: u32,
) -> Result<(RpcServer, u32), Error>
pub fn new_vsock( service: SpIBinder, cid: u32, port: u32, ) -> Result<(RpcServer, u32), Error>
Creates a binder RPC server, serving the supplied binder service implementation on the given vsock port. Only connections from the given CID are accepted.
Set cid
to [libc::VMADDR_CID_ANY
] to accept connections from any client.
Set cid
to [libc::VMADDR_CID_LOCAL
] to only bind to the local vsock interface.
Set port
to [libc::VMADDR_PORT_ANY
] to pick an ephemeral port.
The assigned port is returned with RpcServer.
Sourcepub fn new_bound_socket(
service: SpIBinder,
socket_fd: OwnedFd,
) -> Result<RpcServer, Error>
pub fn new_bound_socket( service: SpIBinder, socket_fd: OwnedFd, ) -> Result<RpcServer, Error>
Creates a binder RPC server, serving the supplied binder service implementation on the given socket file descriptor. The socket should be bound to an address before calling this function.
Sourcepub fn new_unix_domain_bootstrap(
service: SpIBinder,
bootstrap_fd: OwnedFd,
) -> Result<RpcServer, Error>
pub fn new_unix_domain_bootstrap( service: SpIBinder, bootstrap_fd: OwnedFd, ) -> Result<RpcServer, Error>
Creates a binder RPC server that bootstraps sessions using an existing Unix domain socket pair, with a given root IBinder object. Callers should create a pair of SOCK_STREAM Unix domain sockets, pass one to the server and the other to the client. Multiple client session can be created from the client end of the pair.
Methods from Deref<Target = RpcServerRef>§
Sourcepub fn set_supported_file_descriptor_transport_modes(
&self,
modes: &[FileDescriptorTransportMode],
)
pub fn set_supported_file_descriptor_transport_modes( &self, modes: &[FileDescriptorTransportMode], )
Sets the list of file descriptor transport modes supported by this server.
Sourcepub fn set_max_threads(&self, count: usize)
pub fn set_max_threads(&self, count: usize)
Sets the max number of threads this Server uses for incoming client connections.
This must be called before adding a client session. This corresponds to the number of incoming connections to RpcSession objects in the server, which will correspond to the number of outgoing connections in client RpcSession objects. Specifically this is useful for handling client-side callback connections.
If this is not specified, this will be a single-threaded server.
Trait Implementations§
Source§impl AsRef<RpcServerRef> for RpcServer
impl AsRef<RpcServerRef> for RpcServer
Source§fn as_ref(&self) -> &RpcServerRef
fn as_ref(&self) -> &RpcServerRef
Source§impl Borrow<RpcServerRef> for RpcServer
impl Borrow<RpcServerRef> for RpcServer
Source§fn borrow(&self) -> &RpcServerRef
fn borrow(&self) -> &RpcServerRef
Source§impl Deref for RpcServer
impl Deref for RpcServer
Source§type Target = RpcServerRef
type Target = RpcServerRef
Source§fn deref(&self) -> &RpcServerRef
fn deref(&self) -> &RpcServerRef
Source§impl DerefMut for RpcServer
impl DerefMut for RpcServer
Source§fn deref_mut(&mut self) -> &mut RpcServerRef
fn deref_mut(&mut self) -> &mut RpcServerRef
Source§impl ForeignType for RpcServer
impl ForeignType for RpcServer
Source§type CType = ARpcServer
type CType = ARpcServer
Source§type Ref = RpcServerRef
type Ref = RpcServerRef
Source§unsafe fn from_ptr(ptr: *mut ARpcServer) -> RpcServer
unsafe fn from_ptr(ptr: *mut ARpcServer) -> RpcServer
Source§fn as_ptr(&self) -> *mut ARpcServer
fn as_ptr(&self) -> *mut ARpcServer
impl Send for RpcServer
SAFETY: The opaque handle can be cloned freely.
impl Sync for RpcServer
SAFETY: The underlying C++ RpcServer class is thread-safe.
Auto Trait Implementations§
impl Freeze for RpcServer
impl RefUnwindSafe for RpcServer
impl Unpin for RpcServer
impl UnwindSafe for RpcServer
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.