pub trait PollableInputStreamExt: IsA<PollableInputStream> + Sealed + 'static {
    // Provided methods
    fn can_poll(&self) -> bool { ... }
    fn is_readable(&self) -> bool { ... }
Expand description

Provided Methods§


fn can_poll(&self) -> bool

Checks if @self is actually pollable. Some classes may implement #GPollableInputStream but have only certain instances of that class be pollable. If this method returns false, then the behavior of other #GPollableInputStream methods is undefined.

For any given stream, the value returned by this method is constant; a stream cannot switch from pollable to non-pollable or vice versa.


true if @self is pollable, false if not.


fn is_readable(&self) -> bool

Checks if @self can be read.

Note that some stream types may not be able to implement this 100% reliably, and it is possible that a call to g_input_stream_read() after this returns true would still block. To guarantee non-blocking behavior, you should always use g_pollable_input_stream_read_nonblocking(), which will return a IOErrorEnum::WouldBlock error rather than blocking.

The behaviour of this method is undefined if g_pollable_input_stream_can_poll() returns false for @self.


true if @self is readable, false if not. If an error has occurred on @self, this will result in g_pollable_input_stream_is_readable() returning true, and the next attempt to read will return the error.

Object Safety§

This trait is not object safe.