SeekableIF

#GSeekable is implemented by streams (implementations of #GInputStream or #GOutputStream) 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 lseek() 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 lseek() on a normal file. Seeking past the end and writing data will usually cause the stream to resize by introducing zero bytes.

Members

Functions

canSeek
bool canSeek()

Tests if the stream supports the #GSeekableIface.

canTruncate
bool canTruncate()

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

getSeekableStruct
GSeekable* getSeekableStruct(bool transferOwnership)

Get the main Gtk struct

getStruct
void* getStruct()

the main Gtk struct as a void*

seek
bool seek(long offset, GSeekType type, Cancellable cancellable)

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

tell
long tell()

Tells the current position within the stream.

truncate
bool truncate(long offset, Cancellable cancellable)

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.

Static functions

getType
GType getType()

Meta