Struct dbus::Watch
[−]
[src]
pub struct Watch { /* fields omitted */ }
A file descriptor to watch for incoming events (for async I/O).
Example
extern crate libc; extern crate dbus; fn main() { use dbus::{Connection, BusType, WatchEvent}; let c = Connection::get_private(BusType::Session).unwrap(); // Get a list of fds to poll for let mut fds: Vec<_> = c.watch_fds().iter().map(|w| w.to_pollfd()).collect(); // Poll them with a 1 s timeout let r = unsafe { libc::poll(fds.as_mut_ptr(), fds.len() as libc::c_ulong, 1000) }; assert!(r >= 0); // And handle incoming events for pfd in fds.iter().filter(|pfd| pfd.revents != 0) { for item in c.watch_handle(pfd.fd, WatchEvent::from_revents(pfd.revents)) { // Handle item println!("Received ConnectionItem: {:?}", item); } } }
Methods
impl Watch
[src]
fn fd(&self) -> RawFd
Get the RawFd this Watch is for
fn readable(&self) -> bool
Add POLLIN to events to listen for
fn writable(&self) -> bool
Add POLLOUT to events to listen for
fn to_pollfd(&self) -> pollfd
Returns the current watch as a libc::pollfd, to use with libc::poll
Trait Implementations
impl Clone for Watch
[src]
fn clone(&self) -> Watch
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl Copy for Watch
[src]
impl Debug for Watch
[src]
impl PartialEq for Watch
[src]
fn eq(&self, __arg_0: &Watch) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Watch) -> bool
This method tests for !=
.
impl Eq for Watch
[src]
impl PartialOrd for Watch
[src]
fn partial_cmp(&self, __arg_0: &Watch) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
fn lt(&self, __arg_0: &Watch) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
fn le(&self, __arg_0: &Watch) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
fn gt(&self, __arg_0: &Watch) -> bool
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
fn ge(&self, __arg_0: &Watch) -> bool
This method tests greater than or equal to (for self
and other
) and is used by the >=
operator. Read more
impl Ord for Watch
[src]
fn cmp(&self, __arg_0: &Watch) -> Ordering
This method returns an Ordering
between self
and other
. Read more