pub enum ClientRequest {
WatchServices {
uuids: Vec<Uuid>,
responder: ClientWatchServicesResponder,
},
ConnectToService {
handle: ServiceHandle,
service: ServerEnd<RemoteServiceMarker>,
control_handle: ClientControlHandle,
},
}
Variants§
WatchServices
Enumerates services found on the peer that this Client represents.
Results can be filtered by specifying a list of UUIDs in uuids
. This
method follows the hanging get pattern. On the initial request, a
complete snapshot will be returned. Subsequent calls with the same set
of uuids
receive a response only when one or more services have been
added, modified, or removed from the entries reported since the most
recent call. Calls with new values of uuids
will reset the filter and
receive a complete snapshot.
Handles may be reused across services, so a handle may be in both
updated
and removed
. For this reason, it is recommended to process
removed services before updated services.
To further interact with services, clients must obtain a RemoteService protocol by calling ConnectToService().
- request
uuids
the UUID allowlist. If empty, all services will be returned.
- response
updated
the services that have been added or modified since WatchServices() was last called. The returned ServiceInfo tables will contain only basic information about each service and thecharacteristics
andincludes
fields will be null. If a service has been added/modified and then removed since the last call, it will only be present inremoved
, notupdated
. If concluded due to a new call with a newuuids
value,updated
will be empty. - response
removed
the handles of the services that have been removed since the last call to WatchServices().
ConnectToService
Connects the RemoteService with the given identifier. Only 1 connection per service is allowed.
service
will be closed on error, with an epitaph that provides a
reason.
- error Returns a
ZX_ERR_INVALID_ARGS
ifhandle
is invalid. - error Returns a
ZX_ERR_NOT_FOUND
if the service is not found. - error Returns a
ZX_ERR_CONNECTION_RESET
if the service is removed. - error Returns a
ZX_ERR_NOT_CONNECTED
if the peer disconnects. - error Returns a
ZX_ERR_ALREADY_EXISTS
if the service is already connected.
Fields
handle: ServiceHandle
service: ServerEnd<RemoteServiceMarker>
control_handle: ClientControlHandle
Implementations§
Source§impl ClientRequest
impl ClientRequest
pub fn into_watch_services( self, ) -> Option<(Vec<Uuid>, ClientWatchServicesResponder)>
pub fn into_connect_to_service( self, ) -> Option<(ServiceHandle, ServerEnd<RemoteServiceMarker>, ClientControlHandle)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL