pub struct ChargerSynchronousProxy { /* private fields */ }Implementations§
Source§impl ChargerSynchronousProxy
impl ChargerSynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
Sourcepub fn wait_for_event(
&self,
deadline: MonotonicInstant,
) -> Result<ChargerEvent, Error>
pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<ChargerEvent, 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 get_spec(
&self,
___deadline: MonotonicInstant,
) -> Result<ChargerGetSpecResult, Error>
pub fn get_spec( &self, ___deadline: MonotonicInstant, ) -> Result<ChargerGetSpecResult, Error>
Retrieves the static specification of the charger.
Returns:
spec: Static hardware characteristics and driver capabilities of the charger.
Errors:
NOT_SUPPORTED: Hardware does not supply a static specification.IO: Communication failure with the charger hardware (e.g. SPMI transfer failure).INTERNAL: Internal driver error.
Sourcepub fn get_status(
&self,
___deadline: MonotonicInstant,
) -> Result<ChargerGetStatusResult, Error>
pub fn get_status( &self, ___deadline: MonotonicInstant, ) -> Result<ChargerGetStatusResult, Error>
Retrieves an instantaneous snapshot of the charger status.
Returns:
status: Complete current telemetry snapshot of the charging regulator and its inputs.
Errors:
IO: Communication failure with the charger hardware (e.g. SPMI transfer failure).INTERNAL: Internal driver error.
Sourcepub fn configure_watch(
&self,
options: &WatchOptions,
___deadline: MonotonicInstant,
) -> Result<ChargerConfigureWatchResult, Error>
pub fn configure_watch( &self, options: &WatchOptions, ___deadline: MonotonicInstant, ) -> Result<ChargerConfigureWatchResult, Error>
Configures the fields of interest and wake triggers for this client connection.
The driver filters the requested masks against hardware capabilities and returns the
effective configuration in effective_options.
- Partially supported options: If some requested fields are supported and others are not
(e.g., requesting passive fields like
input_voltage_uvorinput_current_uathat do not support active interrupt notifications), the driver enables the supported fields and returns the active subset ineffective_options. The call succeeds (Ok). - Fully unsupported options: If non-empty masks were specified but NONE of the requested
fields are supported, the driver returns
NOT_SUPPORTED.
If ConfigureWatch is never called, Watch defaults to returning on ANY supported field
change. The driver aggregates constraints across all clients to determine hardware reporting
rates.
Calling ConfigureWatch while a Watch call is already pending takes effect immediately:
if the current hardware state already differs from the last-delivered snapshot on a newly
enabled field, the pending Watch resolves immediately; otherwise it remains pending under
the updated mask.
If ConfigureWatch returns an error, the connection’s prior watch configuration remains
unchanged.
Parameters:
options: Requested watch options. Bothinterestandwake_onare optional.
Returns:
effective_options: The subset of requested options supported and enabled by the driver.
Errors:
NOT_SUPPORTED: Non-empty options were requested, but none of the requested interest/wake fields are supported by the driver.
Sourcepub fn watch(
&self,
lease: Option<EventPair>,
___deadline: MonotonicInstant,
) -> Result<ChargerWatchResult, Error>
pub fn watch( &self, lease: Option<EventPair>, ___deadline: MonotonicInstant, ) -> Result<ChargerWatchResult, Error>
Watches for changes in charger state using a hanging-get pattern.
The first call returns the full current hardware state immediately. Subsequent calls block
until a state change matches the masks in [ConfigureWatch]. Each return contains a
complete telemetry snapshot of all current charger fields, not a sparse delta.
At most one Watch call may be outstanding per connection; concurrent calls fail with
ALREADY_WATCHING.
Parameters:
lease: An optional power lease token used to coordinate handoff between client and server, preventing the system from suspending before critical charger events are handled. If omitted, or if the driver does not support anywake_onfields, no lease coordination is performed and any provided token is dropped without returning awake_lease.
Returns:
status: Complete current telemetry snapshot of the charger.wake_lease: An optional lease token provided if the change triggered awake_oncondition. Omitted if the change did not trigger a wake condition or if suspend coordination is inactive.
Errors:
ALREADY_WATCHING: AWatchcall is already pending on this connection.IO: Communication failure with the charger hardware (e.g. SPMI transfer failure).INTERNAL: Internal driver error.
Trait Implementations§
Source§impl Debug for ChargerSynchronousProxy
impl Debug for ChargerSynchronousProxy
Source§impl From<Channel> for ChargerSynchronousProxy
Available on Fuchsia only.
impl From<Channel> for ChargerSynchronousProxy
Source§impl From<ChargerSynchronousProxy> for NullableHandle
Available on Fuchsia only.
impl From<ChargerSynchronousProxy> for NullableHandle
Source§fn from(value: ChargerSynchronousProxy) -> Self
fn from(value: ChargerSynchronousProxy) -> Self
Source§impl FromClient for ChargerSynchronousProxy
Available on Fuchsia only.
impl FromClient for ChargerSynchronousProxy
Source§type Protocol = ChargerMarker
type Protocol = ChargerMarker
Source§fn from_client(value: ClientEnd<ChargerMarker>) -> Self
fn from_client(value: ClientEnd<ChargerMarker>) -> Self
Source§impl SynchronousProxy for ChargerSynchronousProxy
Available on Fuchsia only.
impl SynchronousProxy for ChargerSynchronousProxy
Source§type Proxy = ChargerProxy
type Proxy = ChargerProxy
Source§type Protocol = ChargerMarker
type Protocol = ChargerMarker
Proxy controls.