template <>

class NaturalClientImpl

Defined at line 80 of file fidling/gen/sdk/fidl/fuchsia.power.system/fuchsia.power.system/cpp/fidl/fuchsia.power.system/cpp/natural_messaging.h

Public Methods

::fidl::internal::NaturalThenable< ::fuchsia_power_system::SuspendBlocker::BeforeSuspend> BeforeSuspend ()

Called after system activity governor begins operations to suspend the

hardware platform.

The server is expected to respond once it has performed the operations

it needs to prepare itself for suspend, if any. All dependencies of

`ExecutionStateLevel::SUSPENDING` are guaranteed to be satisified for

the duration of this call and may be revoked once the server replies.

Operations to suspend the hardware platform may vary between different

hardware platforms and product configurations. At a minimum, the client

and server MUST assume that general code execution continues

until a reply to this call is received by the client. If the

SuspendBlocker wants to preempt suspend operations, it MUST call

`ActivityGovernor.AcquireWakeLease` before replying to this call.

ExecutionState will be at its SUSPENDING level for the duration of this

call. Consequently, a SuspendBlocker MUST NOT call

`ActivityGovernor.TakeApplicationActivityLease` nor perform any other

action that blocks on Execution State reaching a level other than

INACTIVE. Doing so will result in a deadlock. (However, AcquireWakeLease

does _not_ block in this way and is safe to call.)

::fidl::internal::NaturalThenable< ::fuchsia_power_system::SuspendBlocker::AfterResume> AfterResume ()

Called after system activity governor is aware that the hardware

platform has resumed.

For the duration of this call, ExecutionState is at level INACTIVE,

but all dependencies of `ExecutionStateLevel::SUSPENDING` are guaranteed

be satisified.

Consequently, a SuspendBlocker MUST NOT call

`ActivityGovernor.TakeApplicationActivityLease` nor perform any other

action that blocks on Execution State reaching a level other than

INACTIVE. Doing so will result in a deadlock. (However, AcquireWakeLease

does _not_ block in this way and is safe to call.)