Seekable

interface 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

Link copied to clipboard
object Companion

Properties

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 seek(offset: Long, 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
open fun tell(): Long

Tells the current position within the stream.

Link copied to clipboard
open fun truncate(offset: Long, 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.