Interface

GioPollableOutputStream

Description [src]

interface Gio.PollableOutputStream : Gio.OutputStream

GPollableOutputStream is implemented by GOutputStreams 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.

Available since:2.28

Prerequisite

In order to implement PollableOutputStream, your type must inherit from GOutputStream.

Instance methods

g_pollable_output_stream_can_poll

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.

Available since: 2.28

g_pollable_output_stream_create_source

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.

Available since: 2.28

g_pollable_output_stream_is_writable

Checks if stream can be written.

Available since: 2.28

g_pollable_output_stream_write_nonblocking

Attempts to write up to count bytes from buffer to stream, as with g_output_stream_write(). If stream is not currently writable, this will immediately return G_IO_ERROR_WOULD_BLOCK, and you can use g_pollable_output_stream_create_source() to create a GSource that will be triggered when stream is writable.

g_pollable_output_stream_writev_nonblocking

Attempts to write the bytes contained in the n_vectors vectors to stream, as with g_output_stream_writev(). If stream is not currently writable, this will immediately return %G_POLLABLE_RETURN_WOULD_BLOCK, and you can use g_pollable_output_stream_create_source() to create a GSource that will be triggered when stream is writable. error will not be set in that case.

Available since: 2.60

Interface structure

struct GioPollableOutputStreamInterface {
  GTypeInterface g_iface;
  gboolean (* can_poll) (
    GPollableOutputStream* stream
  );
  gboolean (* is_writable) (
    GPollableOutputStream* stream
  );
  GSource* (* create_source) (
    GPollableOutputStream* stream,
    GCancellable* cancellable
  );
  gssize (* write_nonblocking) (
    GPollableOutputStream* stream,
    void* buffer,
    gsize count,
    GError** error
  );
  GPollableReturn (* writev_nonblocking) (
    GPollableOutputStream* stream,
    const GOutputVector* vectors,
    gsize n_vectors,
    gsize* bytes_written,
    GError** error
  );
  
}
Interface members
g_iface
GTypeInterface
 

The parent interface.

can_poll
gboolean (* can_poll) (
    GPollableOutputStream* stream
  )
 No description available.
is_writable
gboolean (* is_writable) (
    GPollableOutputStream* stream
  )
 No description available.
create_source
GSource* (* create_source) (
    GPollableOutputStream* stream,
    GCancellable* cancellable
  )
 No description available.
write_nonblocking
gssize (* write_nonblocking) (
    GPollableOutputStream* stream,
    void* buffer,
    gsize count,
    GError** error
  )
 No description available.
writev_nonblocking
GPollableReturn (* writev_nonblocking) (
    GPollableOutputStream* stream,
    const GOutputVector* vectors,
    gsize n_vectors,
    gsize* bytes_written,
    GError** error
  )
 No description available.

Virtual methods

Gio.PollableOutputStream.can_poll

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.

Gio.PollableOutputStream.create_source

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.

Gio.PollableOutputStream.is_writable

Checks if stream can be written.

Gio.PollableOutputStream.write_nonblocking

Attempts to write up to count bytes from buffer to stream, as with g_output_stream_write(). If stream is not currently writable, this will immediately return G_IO_ERROR_WOULD_BLOCK, and you can use g_pollable_output_stream_create_source() to create a GSource that will be triggered when stream is writable.

Gio.PollableOutputStream.writev_nonblocking

Attempts to write the bytes contained in the n_vectors vectors to stream, as with g_output_stream_writev(). If stream is not currently writable, this will immediately return %G_POLLABLE_RETURN_WOULD_BLOCK, and you can use g_pollable_output_stream_create_source() to create a GSource that will be triggered when stream is writable. error will not be set in that case.