Seekable
GSeekable
is implemented by streams (implementations of class@Gio.InputStream or class@Gio.OutputStream) that support seeking.
Seekable streams largely fall into two categories: resizable and fixed-size.
GSeekable
on fixed-sized streams is approximately the same as POSIX man:lseek(2) on a block device (for example: attempting to seek past the end of the device is an error). Fixed streams typically cannot be truncated.
GSeekable
on resizable streams is approximately the same as POSIX man:lseek(2) on a normal file. Seeking past the end and writing data will usually cause the stream to resize by introducing zero bytes.
Inheritors
Types
The SeekableImpl type represents a native instance of the Seekable interface.
Functions
Tests if the length of the stream can be adjusted with g_seekable_truncate().
Given @connection to communicate with a proxy (eg, a #GSocketConnection that is connected to the proxy server), this does the necessary handshake to connect to @proxy_address, and if required, wraps the #GIOStream to handle proxy payload.
Asynchronous version of g_proxy_connect().
See g_proxy_connect().
Seeks in the stream by the given @offset, modified by @type.
Some proxy protocols expect to be passed a hostname, which they will resolve to an IP address themselves. Others, like SOCKS4, do not allow this. This function will return false if @proxy is implementing such a protocol. When false is returned, the caller should resolve the destination hostname first, and then pass a #GProxyAddress containing the stringified IP address to g_proxy_connect() or g_proxy_connect_async().
Sets the length of the stream to @offset. If the stream was previously larger than @offset, the extra data is discarded. If the stream was previously shorter than @offset, it is extended with NUL ('\0') bytes.