pub enum MouseSourceV2Request {
AcknowledgeEvents {
last_acknowledged_event_stamp: u64,
control_handle: MouseSourceV2ControlHandle,
},
#[non_exhaustive] _UnknownMethod {
ordinal: u64,
control_handle: MouseSourceV2ControlHandle,
method_type: MethodType,
},
}Expand description
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
EXITEDevents 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].
Variants§
AcknowledgeEvents
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.
#[non_exhaustive]_UnknownMethod
An interaction was received which does not match any known method.
Fields
This variant is marked as non-exhaustive
control_handle: MouseSourceV2ControlHandlemethod_type: MethodTypeImplementations§
Source§impl MouseSourceV2Request
impl MouseSourceV2Request
pub fn into_acknowledge_events( self, ) -> Option<(u64, MouseSourceV2ControlHandle)>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL