Struct fidl_fuchsia_lowpan_device::DeviceProxy
source · pub struct DeviceProxy { /* private fields */ }
Implementations§
source§impl DeviceProxy
impl DeviceProxy
sourcepub fn take_event_stream(&self) -> DeviceEventStream
pub fn take_event_stream(&self) -> DeviceEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
sourcepub fn provision_network(
&self,
params: &ProvisioningParams,
) -> QueryResponseFut<()>
pub fn provision_network( &self, params: &ProvisioningParams, ) -> QueryResponseFut<()>
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) -> QueryResponseFut<()>
pub fn leave_network(&self) -> QueryResponseFut<()>
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) -> QueryResponseFut<()>
pub fn set_active(&self, active: bool) -> QueryResponseFut<()>
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) -> QueryResponseFut<Vec<String>>
pub fn get_supported_network_types(&self) -> QueryResponseFut<Vec<String>>
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) -> QueryResponseFut<DeviceState>
pub fn watch_device_state(&self) -> QueryResponseFut<DeviceState>
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 Clone for DeviceProxy
impl Clone for DeviceProxy
source§fn clone(&self) -> DeviceProxy
fn clone(&self) -> DeviceProxy
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for DeviceProxy
impl Debug for DeviceProxy
source§impl DeviceProxyInterface for DeviceProxy
impl DeviceProxyInterface for DeviceProxy
type ProvisionNetworkResponseFut = QueryResponseFut<()>
fn provision_network( &self, params: &ProvisioningParams, ) -> Self::ProvisionNetworkResponseFut
type LeaveNetworkResponseFut = QueryResponseFut<()>
fn leave_network(&self) -> Self::LeaveNetworkResponseFut
type SetActiveResponseFut = QueryResponseFut<()>
fn set_active(&self, active: bool) -> Self::SetActiveResponseFut
type GetSupportedNetworkTypesResponseFut = QueryResponseFut<Vec<String>>
fn get_supported_network_types( &self, ) -> Self::GetSupportedNetworkTypesResponseFut
type WatchDeviceStateResponseFut = QueryResponseFut<DeviceState>
fn watch_device_state(&self) -> Self::WatchDeviceStateResponseFut
source§impl Proxy for DeviceProxy
impl Proxy for DeviceProxy
§type Protocol = DeviceMarker
type Protocol = DeviceMarker
Proxy
controls.source§fn from_channel(inner: AsyncChannel) -> Self
fn from_channel(inner: AsyncChannel) -> Self
source§fn into_channel(self) -> Result<AsyncChannel, Self>
fn into_channel(self) -> Result<AsyncChannel, Self>
source§fn as_channel(&self) -> &AsyncChannel
fn as_channel(&self) -> &AsyncChannel
§fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
fn into_client_end(self) -> Result<ClientEnd<Self::Protocol>, Self>
Auto Trait Implementations§
impl Freeze for DeviceProxy
impl !RefUnwindSafe for DeviceProxy
impl Send for DeviceProxy
impl Sync for DeviceProxy
impl Unpin for DeviceProxy
impl !UnwindSafe for DeviceProxy
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)