Struct devices::virtio::gpu::EventDevice
source · pub struct EventDevice {
kind: EventDeviceKind,
event_buffer: VecDeque<u8>,
event_socket: StreamChannel,
}
Expand description
Encapsulates a virtual event device, such as a mouse or keyboard
Fields§
§kind: EventDeviceKind
§event_buffer: VecDeque<u8>
§event_socket: StreamChannel
Implementations§
source§impl EventDevice
impl EventDevice
pub fn new(kind: EventDeviceKind, event_socket: StreamChannel) -> EventDevice
pub fn mouse(event_socket: StreamChannel) -> EventDevice
pub fn touchscreen(event_socket: StreamChannel) -> EventDevice
pub fn keyboard(event_socket: StreamChannel) -> EventDevice
pub fn kind(&self) -> EventDeviceKind
sourcepub fn flush_buffered_events(&mut self) -> Result<bool, Error>
pub fn flush_buffered_events(&mut self) -> Result<bool, Error>
Flushes the buffered events that did not fit into the underlying transport, if any.
Returns Ok(true)
if, after this function returns, there all the buffer of events is
empty.
pub fn is_buffered_events_empty(&self) -> bool
pub fn send_report<E>(&mut self, events: E) -> Result<bool, Error>
sourcepub fn send_event_encoded(
&mut self,
event: virtio_input_event
) -> Result<bool, Error>
pub fn send_event_encoded( &mut self, event: virtio_input_event ) -> Result<bool, Error>
Sends the given event
, returning Ok(true)
if, after this function returns, there are no
buffered events remaining.
pub fn recv_event_encoded(&self) -> Result<virtio_input_event, Error>
Trait Implementations§
source§impl AsRawDescriptor for EventDevice
impl AsRawDescriptor for EventDevice
source§fn as_raw_descriptor(&self) -> i32
fn as_raw_descriptor(&self) -> i32
Returns the underlying raw descriptor. Read more
source§impl Debug for EventDevice
impl Debug for EventDevice
source§impl<'de> Deserialize<'de> for EventDevice
impl<'de> Deserialize<'de> for EventDevice
source§fn deserialize<__D>(
__deserializer: __D
) -> Result<EventDevice, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<EventDevice, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl ReadNotifier for EventDevice
impl ReadNotifier for EventDevice
source§fn get_read_notifier(&self) -> &dyn AsRawDescriptor
fn get_read_notifier(&self) -> &dyn AsRawDescriptor
Gets a descriptor that can be used in EventContext to wait for events to be available (e.g.
to avoid receive_events blocking).
source§impl Serialize for EventDevice
impl Serialize for EventDevice
source§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl RefUnwindSafe for EventDevice
impl Send for EventDevice
impl Sync for EventDevice
impl Unpin for EventDevice
impl UnwindSafe for EventDevice
Blanket Implementations§
source§impl<T> AsRawDescriptors for Twhere
T: AsRawDescriptor,
impl<T> AsRawDescriptors for Twhere
T: AsRawDescriptor,
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.