Gio.Seekable

g GObject.GInterface GObject.GInterface Gio.Seekable Gio.Seekable GObject.GInterface->Gio.Seekable

Implementations:

Gio.BufferedInputStream, Gio.BufferedOutputStream, Gio.DataOutputStream, Gio.FileIOStream, Gio.FileInputStream, Gio.FileOutputStream, Gio.MemoryInputStream, Gio.MemoryOutputStream

Methods

can_seek ()

can_truncate ()

seek (offset, type, cancellable)

tell ()

truncate (offset, cancellable)

Virtual Methods

do_can_seek ()

do_can_truncate ()

do_seek (offset, type, cancellable)

do_tell ()

do_truncate_fn (offset, cancellable)

Properties

None

Signals

None

Fields

None

Class Details

class Gio.Seekable
Bases:

GObject.GInterface

Structure:

Gio.SeekableIface

Gio.Seekable is implemented by streams (implementations of Gio.InputStream or Gio.OutputStream) that support seeking.

Seekable streams largely fall into two categories: resizable and fixed-size.

Gio.Seekable 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.

Gio.Seekable 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.

can_seek()[source]
Returns:

True if self can be seeked. False otherwise.

Return type:

bool

Tests if the stream supports the Gio.SeekableIface.

can_truncate()[source]
Returns:

True if the stream can be truncated, False otherwise.

Return type:

bool

Tests if the length of the stream can be adjusted with Gio.Seekable.truncate().

seek(offset, type, cancellable)[source]
Parameters:
Raises:

GLib.Error

Returns:

True if successful. If an error has occurred, this function will return False and set error appropriately if present.

Return type:

bool

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

Attempting to seek past the end of the stream will have different results depending on if the stream is fixed-sized or resizable. If the stream is resizable then seeking past the end and then writing will result in zeros filling the empty space. Seeking past the end of a resizable stream and reading will result in EOF. Seeking past the end of a fixed-sized stream will fail.

Any operation that would result in a negative offset will fail.

If cancellable is not None, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error Gio.IOErrorEnum.CANCELLED will be returned.

tell()[source]
Returns:

the (positive or zero) offset from the beginning of the buffer, zero if the target is not seekable.

Return type:

int

Tells the current position within the stream.

truncate(offset, cancellable)[source]
Parameters:
Raises:

GLib.Error

Returns:

True if successful. If an error has occurred, this function will return False and set error appropriately if present.

Return type:

bool

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.

If cancellable is not None, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error Gio.IOErrorEnum.CANCELLED will be returned. If an operation was partially finished when the operation was cancelled the partial result will be returned, without an error.

do_can_seek() virtual
Returns:

True if seekable can be seeked. False otherwise.

Return type:

bool

Tests if the stream supports the Gio.SeekableIface.

do_can_truncate() virtual
Returns:

True if the stream can be truncated, False otherwise.

Return type:

bool

Tests if the length of the stream can be adjusted with Gio.Seekable.truncate().

do_seek(offset, type, cancellable) virtual
Parameters:
Returns:

True if successful. If an error has occurred, this function will return False and set error appropriately if present.

Return type:

bool

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

Attempting to seek past the end of the stream will have different results depending on if the stream is fixed-sized or resizable. If the stream is resizable then seeking past the end and then writing will result in zeros filling the empty space. Seeking past the end of a resizable stream and reading will result in EOF. Seeking past the end of a fixed-sized stream will fail.

Any operation that would result in a negative offset will fail.

If cancellable is not None, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error Gio.IOErrorEnum.CANCELLED will be returned.

do_tell() virtual
Returns:

the (positive or zero) offset from the beginning of the buffer, zero if the target is not seekable.

Return type:

int

Tells the current position within the stream.

do_truncate_fn(offset, cancellable) virtual
Parameters:
Returns:

True if successful. If an error has occurred, this function will return False and set error appropriately if present.

Return type:

bool

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.

If cancellable is not None, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error Gio.IOErrorEnum.CANCELLED will be returned. If an operation was partially finished when the operation was cancelled the partial result will be returned, without an error.