pub struct DeviceSynchronousProxy { /* private fields */ }
Implementations§
Source§impl DeviceSynchronousProxy
impl DeviceSynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
Sourcepub fn wait_for_event(
&self,
deadline: MonotonicInstant,
) -> Result<DeviceEvent, Error>
pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<DeviceEvent, Error>
Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.
Sourcepub fn provision_network(
&self,
params: &ProvisioningParams,
___deadline: MonotonicInstant,
) -> Result<(), Error>
pub fn provision_network( &self, params: &ProvisioningParams, ___deadline: MonotonicInstant, ) -> Result<(), Error>
Provision the interface for the network described by identity
and credential. This is similar to JoinNetwork
, except that
(assuming the identity and credential are valid) it will (assuming
all preconditions are met) always succeed, even if there are no
peers nearby.
The following fields of ProvisioningParams
MUST
be specified:
identity.raw_name
identity.xpanid
identity.panid
identity.channel_index
credential
If any of the required fields are unspecified, the
channel will be closed with the epitaph ZX_ERR_INVALID_ARGUMENT
.
Additionally, if the identity.net_type
field is present
and does not match a network type supported by this device,
the channel will also be closed with the epitaph ZX_ERR_NOT_SUPPORTED
.
This method returns once the device has been reconfigured successfully.
The resulting change in state can be monitored via WatchDeviceState()
.
Any error that prevents the operation from completing successfully
will result in the protocol being closed.
Sourcepub fn leave_network(&self, ___deadline: MonotonicInstant) -> Result<(), Error>
pub fn leave_network(&self, ___deadline: MonotonicInstant) -> Result<(), Error>
Bring down the network interface and forget all non-volatile details about the current network.
Upon completion, all non-volatile and transient state about the current network is cleared and the interface will be offline.
Specifically, calling this method will cause the following observable effects:
DeviceState.connectivity_state
will transition toState::OFFLINE
, assuming it wasn’t in that state already.DeviceExtra::WatchIdentity
will emit an emptyIdentity
, assuming it wasn’t already empty.
If the interface was not previously provisioned, calling this method does nothing.
Sourcepub fn set_active(
&self,
active: bool,
___deadline: MonotonicInstant,
) -> Result<(), Error>
pub fn set_active( &self, active: bool, ___deadline: MonotonicInstant, ) -> Result<(), Error>
Activate (“bring-up”) or deactivate (“shut-down”) the network interface.
Note that simply setting this to true
does not mean that
the network interface will necessarily become online and usable,
see the connectivity_state
field of the DeviceState
table for
more information.
This method returns once the operation has completed successfully.
The resulting change in state can be monitored via WatchDeviceState()
.
Any error that prevents the operation from completing successfully
will result in the protocol being closed.
Sourcepub fn get_supported_network_types(
&self,
___deadline: MonotonicInstant,
) -> Result<Vec<String>, Error>
pub fn get_supported_network_types( &self, ___deadline: MonotonicInstant, ) -> Result<Vec<String>, Error>
Returns the types of networks supported by this interface.
LoWPAN devices typically only support a single network type,
but some devices may support more than one. Up to MAX_NETWORK_TYPES
network types may be returned.
Sourcepub fn watch_device_state(
&self,
___deadline: MonotonicInstant,
) -> Result<DeviceState, Error>
pub fn watch_device_state( &self, ___deadline: MonotonicInstant, ) -> Result<DeviceState, Error>
Observes changes to the DeviceState
.
First call always returns a snapshot of the current state. Subsequent calls will block until the state has changed and returns the delta against the device’s internal state.
Changes are not queued. The returned value always represents the latest and most accurate state values, even if several changes had happened in-between calls.
Trait Implementations§
Source§impl Debug for DeviceSynchronousProxy
impl Debug for DeviceSynchronousProxy
Source§impl SynchronousProxy for DeviceSynchronousProxy
impl SynchronousProxy for DeviceSynchronousProxy
Source§type Proxy = DeviceProxy
type Proxy = DeviceProxy
Source§type Protocol = DeviceMarker
type Protocol = DeviceMarker
Proxy
controls.