GIO Reference Manual | ||||
---|---|---|---|---|
Top | Description |
gpollableutilsgpollableutils — GPollableInputStream / GPollableOutputStream utilities |
#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 FALSE if 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, NULL to ignore. [allow-none]
|
|
location to store the error occurring, or NULL to 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, NULL to ignore. [allow-none]
|
|
location to store the error occurring, or NULL to 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, NULL to ignore. [allow-none]
|
|
location to store the error occurring, or NULL to ignore |
Returns : |
TRUE on success, FALSE if there was an error |
Since 2.34