PollableOutputStreamT

gio.pollable_output_stream.PollableOutputStream is implemented by gio.output_stream.OutputStreams that can be polled for readiness to write. This can be used when interfacing with a non-GIO API that expects UNIX-file-descriptor-style asynchronous I/O rather than GIO-style.

Some classes may implement gio.pollable_output_stream.PollableOutputStream but have only certain instances of that class be pollable. If gio.pollable_output_stream.PollableOutputStream.canPoll returns false, then the behavior of other gio.pollable_output_stream.PollableOutputStream methods is undefined.

Members

Functions

canPoll
bool canPoll()

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

createSource
glib.source.Source createSource(gio.cancellable.Cancellable cancellable)

Creates a #GSource that triggers when stream can be written, or cancellable is triggered or an error occurs. The callback on the source is of the #GPollableSourceFunc type.

isWritable
bool isWritable()

Checks if stream can be written.

writeNonblocking
ptrdiff_t writeNonblocking(ubyte[] buffer, gio.cancellable.Cancellable cancellable)

Attempts to write up to count bytes from buffer to stream, as with gio.output_stream.OutputStream.write. If stream is not currently writable, this will immediately return gio.types.IOErrorEnum.WouldBlock, and you can use gio.pollable_output_stream.PollableOutputStream.createSource to create a #GSource that will be triggered when stream is writable.

writevNonblocking
gio.types.PollableReturn writevNonblocking(gio.types.OutputVector[] vectors, size_t bytesWritten, gio.cancellable.Cancellable cancellable)

Attempts to write the bytes contained in the n_vectors vectors to stream, as with gio.output_stream.OutputStream.writev. If stream is not currently writable, this will immediately return %G_POLLABLE_RETURN_WOULD_BLOCK, and you can use gio.pollable_output_stream.PollableOutputStream.createSource to create a #GSource that will be triggered when stream is writable. error will *not* be set in that case.