IOChannel
The GIOChannel
data type aims to provide a portable method for using file descriptors, pipes, and sockets, and integrating them into the main event loop (see struct@GLib.MainContext). Currently, full support is available on UNIX platforms; support for Windows is only partially complete.
To create a new GIOChannel
on UNIX systems use ctor@GLib.IOChannel.unix_new. This works for plain file descriptors, pipes and sockets. Alternatively, a channel can be created for a file in a system independent manner using ctor@GLib.IOChannel.new_file.
Once a GIOChannel
has been created, it can be used in a generic manner with the functions method@GLib.IOChannel.read_chars, method@GLib.IOChannel.write_chars, method@GLib.IOChannel.seek_position, and method@GLib.IOChannel.shutdown.
To add a GIOChannel
to the main event loop, use func@GLib.io_add_watch or func@GLib.io_add_watch_full. Here you specify which events you are interested in on the GIOChannel
, and provide a function to be called whenever these events occur.
GIOChannel
instances are created with an initial reference count of 1. method@GLib.IOChannel.ref and method@GLib.IOChannel.unref can be used to increment or decrement the reference count respectively. When the reference count falls to 0, the GIOChannel
is freed. (Though it isn’t closed automatically, unless it was created using ctor@GLib.IOChannel.new_file.) Using func@GLib.io_add_watch or func@GLib.io_add_watch_full increments a channel’s reference count.
The new functions method@GLib.IOChannel.read_chars, method@GLib.IOChannel.read_line, method@GLib.IOChannel.read_line_string, method@GLib.IOChannel.read_to_end, method@GLib.IOChannel.write_chars, method@GLib.IOChannel.seek_position, and method@GLib.IOChannel.flush should not be mixed with the deprecated functions method@GLib.IOChannel.read, method@GLib.IOChannel.write, and method@GLib.IOChannel.seek on the same channel.
Skipped during bindings generation
method
get_buffer_condition
: C function g_io_channel_get_buffer_condition is ignoredparameter
length
: length: Out parameter is not supportedparameter
bytes_read
: Unsupported pointer to primitive typeparameter
buf
: buf: Out parameter is not supportedparameter
str_return
: str_return: Out parameter is not supportedparameter
terminator_pos
: Unsupported pointer to primitive typeparameter
str_return
: str_return: Out parameter is not supportedparameter
thechar
: thechar: Out parameter is not supportedparameter
bytes_written
: Unsupported pointer to primitive typeparameter
buf
: Array parameter of type guint8 is not supportedfield
ref_count
: Record field ref_count is privatefield
funcs
: Record field funcs is privatefield
encoding
: Record field encoding is privatefield
read_cd
: Record field read_cd is privatefield
write_cd
: Record field write_cd is privatefield
line_term
: Record field line_term is privatefield
line_term_len
: Record field line_term_len is privatefield
buf_size
: Record field buf_size is privatefield
read_buf
: Record field read_buf is privatefield
encoded_read_buf
: Record field encoded_read_buf is privatefield
write_buf
: Record field write_buf is privatefield
partial_write_buf
: Record field partial_write_buf is privatefield
use_buffer
: Record field use_buffer is privatefield
do_encode
: Record field do_encode is privatefield
close_on_unref
: Record field close_on_unref is privatefield
is_readable
: Record field is_readable is privatefield
is_writeable
: Record field is_writeable is privatefield
is_seekable
: Record field is_seekable is privatefield
reserved1
: Record field reserved1 is privatefield
reserved2
: Record field reserved2 is private
Constructors
Functions
Returns whether @channel is buffered.
Gets the buffer size.
Returns whether the file/socket/whatever associated with @channel will be closed when @channel receives its final unref and is destroyed. The default value of this is true for channels created by g_io_channel_new_file (), and false for all other channels.
Gets the encoding for the input/output of the channel. The internal encoding is always UTF-8. The encoding null makes the channel safe for binary data.
Replacement for g_io_channel_seek() with the new API.
The buffering state can only be set if the channel's encoding is null. For any other encoding, the channel must be buffered.
Sets the buffer size.
Whether to close the channel on the final unref of the #GIOChannel data structure. The default value of this is true for channels created by g_io_channel_new_file (), and false for all other channels.
Sets the encoding for the input/output of the channel. The internal encoding is always UTF-8. The default encoding for the external file is UTF-8.
This sets the string that #GIOChannel uses to determine where in the file a line break occurs.
Writes a Unicode character to @channel. This function cannot be called on a channel with null encoding.