class MouseSourceV2

Defined at line 3513 of file fidling/gen/sdk/fidl/fuchsia.ui.pointer/fuchsia.ui.pointer/hlcpp/fuchsia/ui/pointer/cpp/fidl.h

A push-based reader protocol for a client to receive mouse pointer events.

Streaming begins automatically on connection. Scenic dispatches mouse

events in hover fragments, starting with `ENTERED` and ending with `EXITED`

when the cursor leaves a view.

Flow control and acknowledgment rules:

- The server will not push more than

`MOUSE_SOURCE_V2_MAX_UNACKNOWLEDGED_EVENTS` (or a product-configured

maximum) events without receiving an acknowledgment from the client.

The server (Scenic) will throttle event delivery when unacknowledged

events in flight reach this limit.

- Clients should send acknowledgments periodically (e.g. before reaching

the limit, such as within 20 remaining credits) to avoid being throttled.

- No head-of-line blocking: Because channels and credit limits are

independent per-view, a slow client that fails to acknowledge `EXITED`

events only blocks its own channel. Scenic can immediately start pushing

events to the newly hovered client on its own channel.

The position of a pointer event is defined in the context of a viewport,

situated in the view, identical to [`MouseSource`].

Public Methods

void ~MouseSourceV2 ()
void AcknowledgeEvents (uint64_t last_acknowledged_event_stamp)

Acknowledges receipt of events up to `last_acknowledged_event_stamp`.

This grants the server "credits" to send more events. All events sent

with a `last_event_stamp` less than or equal to

`last_acknowledged_event_stamp` are considered acknowledged.

The server (Scenic) will throttle event delivery when unacknowledged

events in flight reach `MOUSE_SOURCE_V2_MAX_UNACKNOWLEDGED_EVENTS` (or a

product-configured maximum). Clients should send acknowledgments

periodically (e.g. before reaching the limit, such as within 20

remaining credits) to avoid being throttled.

`last_acknowledged_event_stamp` must be strictly increasing.

Non-compliance results in channel closure.

Protected Methods

void handle_unknown_method (uint64_t ordinal, bool method_has_response)

Friends

class MouseSourceV2_Stub