Seekable

interface Seekable : Proxy(source)

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

Link copied to clipboard
object Companion
Link copied to clipboard
class SeekableImpl(gioSeekablePointer: <Error class: unknown class><<Error class: unknown class>>) : Seekable

The SeekableImpl type represents a native instance of the Seekable interface.

Properties

Link copied to clipboard
abstract val gioProxyPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
abstract val gioSeekablePointer: <Error class: unknown class><<Error class: unknown class>>

Functions

Link copied to clipboard
open fun canSeek(): Boolean

Tests if the stream supports the #GSeekableIface.

Link copied to clipboard
open fun canTruncate(): Boolean

Tests if the length of the stream can be adjusted with g_seekable_truncate().

Link copied to clipboard
open fun connect(connection: IoStream, proxyAddress: ProxyAddress, cancellable: Cancellable? = null): <Error class: unknown class><IoStream>

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.

Link copied to clipboard
open fun connectAsync(connection: IoStream, proxyAddress: ProxyAddress, cancellable: Cancellable? = null, callback: AsyncReadyCallback?)

Asynchronous version of g_proxy_connect().

Link copied to clipboard
open fun connectFinish(result: AsyncResult): <Error class: unknown class><IoStream>

See g_proxy_connect().

Link copied to clipboard
open fun seek(    offset: <Error class: unknown class>,     type: <Error class: unknown class>,     cancellable: Cancellable? = null): <Error class: unknown class><Boolean>

Seeks in the stream by the given @offset, modified by @type.

Link copied to clipboard

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().

Link copied to clipboard
open fun tell(): <Error class: unknown class>

Tells the current position within the stream.

Link copied to clipboard
open fun truncate(offset: <Error class: unknown class>, cancellable: Cancellable? = null): <Error class: unknown class><Boolean>

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.