pub struct WakeAlarmsProxy { /* private fields */ }
Implementations§
Source§impl WakeAlarmsProxy
impl WakeAlarmsProxy
Sourcepub fn new(channel: AsyncChannel) -> Self
pub fn new(channel: AsyncChannel) -> Self
Create a new Proxy for fuchsia.time.alarms/WakeAlarms.
Sourcepub fn take_event_stream(&self) -> WakeAlarmsEventStream
pub fn take_event_stream(&self) -> WakeAlarmsEventStream
Get a Stream of events from the remote end of the protocol.
§Panics
Panics if the event stream was already taken.
Sourcepub fn set_and_wait(
&self,
deadline: BootInstant,
mode: SetMode,
alarm_id: &str,
) -> QueryResponseFut<WakeAlarmsSetAndWaitResult, DefaultFuchsiaResourceDialect>
pub fn set_and_wait( &self, deadline: BootInstant, mode: SetMode, alarm_id: &str, ) -> QueryResponseFut<WakeAlarmsSetAndWaitResult, DefaultFuchsiaResourceDialect>
Sets a wake alarm with the provided parameters, and waits for the alarm to fire.
The caller may request multiple alarms concurrently. Re-requesting
an alarm that has the same alarm_id
as an already scheduled alarm
causes that scheduled alarm to be canceled before the new alarm is
scheduled.
§Return value
keep_alive
: A handle that prevents the system from suspending as long as it is held.
The call to SetAndWait
returns when the alarm fires, an error occurs,
or the alarm is canceled. This return style is required for some
clients, such as Starnix, which rely on FIDL response tallying to guide
their power management strategy.
As an example, under Starnix, a response to this request will cause a Starnix container to be unsuspended (“woken up”). This is a critical behavior for suspend correctness under Starnix. Using the [Notifier] approach would side-step this mechanism and result in incorrect wake behavior under Starnix.
§Protocol Errors
DROPPED
: The alarm was canceled by a call toCancel
.UNSPECIFIED
: A new failure mode has been observed that has not yet been assigned an error code. This indicates that the API version may need to be updated.INTERNAL
is a server-side bug: an internal fallible call (which is expected to be unlikely to fail) has failed somehow. Please report this for investigation.- [INVALID_ARGS]: a parameter provided by the user is not valid, such
as an empty
alarm_id
.
Sourcepub fn cancel(&self, alarm_id: &str) -> Result<(), Error>
pub fn cancel(&self, alarm_id: &str) -> Result<(), Error>
Cancels the alarm specified by alarm_id
.
Providing an alarm_id
for an alarm that is not scheduled is a no-op.
Sourcepub fn set(
&self,
notifier: ClientEnd<NotifierMarker>,
deadline: BootInstant,
mode: SetMode,
alarm_id: &str,
) -> QueryResponseFut<WakeAlarmsSetResult, DefaultFuchsiaResourceDialect>
pub fn set( &self, notifier: ClientEnd<NotifierMarker>, deadline: BootInstant, mode: SetMode, alarm_id: &str, ) -> QueryResponseFut<WakeAlarmsSetResult, DefaultFuchsiaResourceDialect>
Sets a wake alarm with the provided parameters.
The caller may request multiple alarms concurrently. Re-requesting
an alarm that has the same alarm_id
as an already scheduled alarm
causes that scheduled alarm to be canceled before the same alarm
is scheduled again.
§Return value
This method will return when the alarm is scheduled.
§Protocol Errors
- [UNSPECIFIED] you are observing a new failure mode which has not been assigned an error code yet. Expect this failure mode to be assigned a more specific error code in future versions of this API. This is not a bug, but an indication that you may need to update the API version.
- [INTERNAL] is a bug: an internal fallible call (which is expected to be unlikely to fail) has failed somehow. Please report this for investigation.
- [INVALID_ARGS]: a parameter provided by the user is not valid, such
as an empty
alarm_id
.
Sourcepub fn set_and_wait_utc(
&self,
deadline: &InstantUtc,
mode: SetMode,
alarm_id: &str,
) -> QueryResponseFut<WakeAlarmsSetAndWaitUtcResult, DefaultFuchsiaResourceDialect>
pub fn set_and_wait_utc( &self, deadline: &InstantUtc, mode: SetMode, alarm_id: &str, ) -> QueryResponseFut<WakeAlarmsSetAndWaitUtcResult, DefaultFuchsiaResourceDialect>
Similar to [SetAndWait], except the alarm is scheduled on the UTC timeline.
Refer to [SetAndWait] documentation for the functionality details, and especially see the section “Return value” for the return value subtleties.
Trait Implementations§
Source§impl Clone for WakeAlarmsProxy
impl Clone for WakeAlarmsProxy
Source§fn clone(&self) -> WakeAlarmsProxy
fn clone(&self) -> WakeAlarmsProxy
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for WakeAlarmsProxy
impl Debug for WakeAlarmsProxy
Source§impl Proxy for WakeAlarmsProxy
impl Proxy for WakeAlarmsProxy
Source§type Protocol = WakeAlarmsMarker
type Protocol = WakeAlarmsMarker
Proxy
controls.