|  |  |  | GIO Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#include <gio/gio.h> gboolean (*GPollableSourceFunc) (GObject *pollable_stream,gpointer user_data); GSource * g_pollable_source_new (GObject *pollable_stream); GSource * g_pollable_source_new_full (gpointer pollable_stream,GSource *child_source,GCancellable *cancellable); gssize g_pollable_stream_read (GInputStream *stream,void *buffer,gsize count,gboolean blocking,GCancellable *cancellable,GError **error); gssize g_pollable_stream_write (GOutputStream *stream,const void *buffer,gsize count,gboolean blocking,GCancellable *cancellable,GError **error); gboolean g_pollable_stream_write_all (GOutputStream *stream,const void *buffer,gsize count,gboolean blocking,gsize *bytes_written,GCancellable *cancellable,GError **error);
gboolean (*GPollableSourceFunc) (GObject *pollable_stream,gpointer user_data);
This is the function type of the callback used for the GSource
returned by g_pollable_input_stream_create_source() and
g_pollable_output_stream_create_source().
| 
 | the GPollableInputStream or GPollableOutputStream | 
| 
 | data passed in by the user. | 
| Returns : | it should return FALSEif the source should be removed. | 
Since 2.28
GSource *           g_pollable_source_new               (GObject *pollable_stream);
Utility method for GPollableInputStream and GPollableOutputStream
implementations. Creates a new GSource that expects a callback of
type GPollableSourceFunc. The new source does not actually do
anything on its own; use g_source_add_child_source() to add other
sources to it to cause it to trigger.
| 
 | the stream associated with the new source | 
| Returns : | the new GSource. [transfer full] | 
Since 2.28
GSource * g_pollable_source_new_full (gpointer pollable_stream,GSource *child_source,GCancellable *cancellable);
Utility method for GPollableInputStream and GPollableOutputStream
implementations. Creates a new GSource, as with
g_pollable_source_new(), but also attaching child_source (with a
dummy callback), and cancellable, if they are non-NULL.
| 
 | the stream associated with the new source. [type GObject] | 
| 
 | optional child source to attach. [allow-none] | 
| 
 | optional GCancellable to attach. [allow-none] | 
| Returns : | the new GSource. [transfer full] | 
Since 2.34
gssize g_pollable_stream_read (GInputStream *stream,void *buffer,gsize count,gboolean blocking,GCancellable *cancellable,GError **error);
Tries to read from stream, as with g_input_stream_read() (if
blocking is TRUE) or g_pollable_input_stream_read_nonblocking()
(if blocking is FALSE). This can be used to more easily share
code between blocking and non-blocking implementations of a method.
If blocking is FALSE, then stream must be a
GPollableInputStream for which g_pollable_input_stream_can_poll()
returns TRUE, or else the behavior is undefined. If blocking is
TRUE, then stream does not need to be a GPollableInputStream.
| 
 | a GInputStream | 
| 
 | a buffer to read data into | 
| 
 | the number of bytes to read | 
| 
 | whether to do blocking I/O | 
| 
 | optional GCancellable object, NULLto ignore. [allow-none] | 
| 
 | location to store the error occurring, or NULLto ignore | 
| Returns : | the number of bytes read, or -1 on error. | 
Since 2.34
gssize g_pollable_stream_write (GOutputStream *stream,const void *buffer,gsize count,gboolean blocking,GCancellable *cancellable,GError **error);
Tries to write to stream, as with g_output_stream_write() (if
blocking is TRUE) or g_pollable_output_stream_write_nonblocking()
(if blocking is FALSE). This can be used to more easily share
code between blocking and non-blocking implementations of a method.
If blocking is FALSE, then stream must be a
GPollableOutputStream for which
g_pollable_output_stream_can_poll() returns TRUE or else the
behavior is undefined. If blocking is TRUE, then stream does not
need to be a GPollableOutputStream.
| 
 | a GOutputStream. | 
| 
 | the buffer containing the data to write. [array length=count][element-type guint8] | 
| 
 | the number of bytes to write | 
| 
 | whether to do blocking I/O | 
| 
 | optional GCancellable object, NULLto ignore. [allow-none] | 
| 
 | location to store the error occurring, or NULLto ignore | 
| Returns : | the number of bytes written, or -1 on error. | 
Since 2.34
gboolean g_pollable_stream_write_all (GOutputStream *stream,const void *buffer,gsize count,gboolean blocking,gsize *bytes_written,GCancellable *cancellable,GError **error);
Tries to write count bytes to stream, as with
g_output_stream_write_all(), but using g_pollable_stream_write()
rather than g_output_stream_write().
On a successful write of count bytes, TRUE is returned, and
bytes_written is set to count.
If there is an error during the operation (including
G_IO_ERROR_WOULD_BLOCK in the non-blocking case), FALSE is
returned and error is set to indicate the error status,
bytes_written is updated to contain the number of bytes written
into the stream before the error occurred.
As with g_pollable_stream_write(), if blocking is FALSE, then
stream must be a GPollableOutputStream for which
g_pollable_output_stream_can_poll() returns TRUE or else the
behavior is undefined. If blocking is TRUE, then stream does not
need to be a GPollableOutputStream.
| 
 | a GOutputStream. | 
| 
 | the buffer containing the data to write. [array length=count][element-type guint8] | 
| 
 | the number of bytes to write | 
| 
 | whether to do blocking I/O | 
| 
 | location to store the number of bytes that was written to the stream. [out] | 
| 
 | optional GCancellable object, NULLto ignore. [allow-none] | 
| 
 | location to store the error occurring, or NULLto ignore | 
| Returns : | TRUEon success,FALSEif there was an error | 
Since 2.34