Struct
GLibIOFuncs
Description [src]
structGIOFuncs{
GIOStatus(*io_read)(
GIOChannel*channel,
gchar*buf,
gsizecount,
gsize*bytes_read,
GError**error
);;
GIOStatus(*io_write)(
GIOChannel*channel,
constgchar*buf,
gsizecount,
gsize*bytes_written,
GError**error
);;
GIOStatus(*io_seek)(
GIOChannel*channel,
gint64offset,
GSeekTypetype,
GError**error
);;
GIOStatus(*io_close)(
GIOChannel*channel,
GError**error
);;
GSource*(*io_create_watch)(
GIOChannel*channel,
GIOConditioncondition
);;
void(*io_free)(
GIOChannel*channel
);;
GIOStatus(*io_set_flags)(
GIOChannel*channel,
GIOFlagsflags,
GError**error
);;
GIOFlags(*io_get_flags)(
GIOChannel*channel
);;
}
A table of functions used to handle different types of GIOChannel
in a generic way.
Structure members
io_read:GIOStatus (* io_read) ( GIOChannel* channel, gchar* buf, gsize count, gsize* bytes_read, GError** error )Reads raw bytes from the channel. This is called from various functions such as
g_io_channel_read_chars()to read raw bytes from the channel. Encoding and buffering issues are dealt with at a higher level.io_write:GIOStatus (* io_write) ( GIOChannel* channel, const gchar* buf, gsize count, gsize* bytes_written, GError** error )Writes raw bytes to the channel. This is called from various functions such as
g_io_channel_write_chars()to write raw bytes to the channel. Encoding and buffering issues are dealt with at a higher level.io_seek:GIOStatus (* io_seek) ( GIOChannel* channel, gint64 offset, GSeekType type, GError** error )Seeks the channel. This is called from
g_io_channel_seek()on channels that support it.io_close:GIOStatus (* io_close) ( GIOChannel* channel, GError** error )Closes the channel. This is called from
g_io_channel_close()after flushing the buffers.io_create_watch:GSource* (* io_create_watch) ( GIOChannel* channel, GIOCondition condition )Creates a watch on the channel. This call corresponds directly to g_io_create_watch().
io_free:void (* io_free) ( GIOChannel* channel )Called from
g_io_channel_unref()when the channel needs to be freed. This function must free the memory associated with the channel, including freeing theGIOChannelstructure itself. The channel buffers have been flushed and possiblyio_closehas been called by the time this function is called.io_set_flags:GIOStatus (* io_set_flags) ( GIOChannel* channel, GIOFlags flags, GError** error )Sets the
GIOFlagson the channel. This is called fromg_io_channel_set_flags()with all flags except forG_IO_FLAG_APPENDandG_IO_FLAG_NONBLOCKmasked out.io_get_flags:GIOFlags (* io_get_flags) ( GIOChannel* channel )Gets the
GIOFlagsfor the channel. This function need only return theG_IO_FLAG_APPENDandG_IO_FLAG_NONBLOCKflags;g_io_channel_get_flags()automatically adds the others as appropriate.