Module: Gio::Seekable

Defined in:
(unknown)

Overview

#GSeekable is implemented by streams (implementations of GInput::Stream 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.

Instance Method Summary collapse

Instance Method Details

#can_seek(seekable) ⇒ TrueClass

Returns true if seekable can be seeked. false otherwise.

Parameters:

Returns:

  • (TrueClass)

    true if seekable can be seeked. false otherwise.

#can_truncate(seekable) ⇒ TrueClass

Returns true if the stream can be truncated, false otherwise.

Parameters:

Returns:

  • (TrueClass)

    true if the stream can be truncated, false otherwise.

#seek(seekable, offset, type, cancellable) ⇒ TrueClass

Returns true if successful. If an error has occurred, this function will return false and set error appropriately if present.

Parameters:

Returns:

  • (TrueClass)

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

#tell(seekable) ⇒ Integer

Returns the offset from the beginning of the buffer.

Parameters:

Returns:

  • (Integer)

    the offset from the beginning of the buffer.

#truncate(offset, cancellable) ⇒ TrueClass

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 previouly shorter than offset, it is extended with NUL (‘0’) bytes.

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

Parameters:

  • offset (Integer)

    new length for seekable, in bytes.

  • cancellable (Gio::Cancellable)

    optional #GCancellable object, nil to ignore.

Returns:

  • (TrueClass)

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

#truncate_fn(seekable, offset, cancellable) ⇒ TrueClass

Returns true if successful. If an error has occurred, this function will return false and set error appropriately if present.

Parameters:

  • seekable (Gio::Seekable)

    a #GSeekable.

  • offset (Integer)

    new length for seekable, in bytes.

  • cancellable (Gio::Cancellable)

    optional #GCancellable object, nil to ignore.

Returns:

  • (TrueClass)

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