gi-gio-2.0.12: Gio bindings

CopyrightWill Thompson, Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.Gio.Interfaces.Seekable

Contents

Description

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

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

Seekable on fixed-sized streams is approximately the same as POSIX lseek() on a block device (for example: attmepting to seek past the end of the device is an error). Fixed streams typically cannot be truncated.

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.

Synopsis

Exported types

newtype Seekable Source #

Constructors

Seekable (ManagedPtr Seekable) 

Instances

GObject Seekable Source # 
IsObject Seekable Source # 
IsSeekable Seekable Source # 
((~) * info (ResolveSeekableMethod t Seekable), MethodInfo * info Seekable p) => IsLabel t (Seekable -> p) Source # 

Methods

fromLabel :: Proxy# Symbol t -> Seekable -> p #

((~) * info (ResolveSeekableMethod t Seekable), MethodInfo * info Seekable p) => IsLabelProxy t (Seekable -> p) Source # 

Methods

fromLabelProxy :: Proxy Symbol t -> Seekable -> p #

HasAttributeList * Seekable Source # 
type AttributeList Seekable Source # 
type SignalList Seekable Source # 

Methods

canSeek

data SeekableCanSeekMethodInfo Source #

Instances

((~) * signature (m Bool), MonadIO m, IsSeekable a) => MethodInfo * SeekableCanSeekMethodInfo a signature Source # 

seekableCanSeek Source #

Arguments

:: (HasCallStack, MonadIO m, IsSeekable a) 
=> a

seekable: a Seekable.

-> m Bool

Returns: True if seekable can be seeked. False otherwise.

Tests if the stream supports the SeekableIface.

canTruncate

seekableCanTruncate Source #

Arguments

:: (HasCallStack, MonadIO m, IsSeekable a) 
=> a

seekable: a Seekable.

-> m Bool

Returns: True if the stream can be truncated, False otherwise.

Tests if the stream can be truncated.

seek

data SeekableSeekMethodInfo Source #

Instances

((~) * signature (Int64 -> SeekType -> Maybe b -> m ()), MonadIO m, IsSeekable a, IsCancellable b) => MethodInfo * SeekableSeekMethodInfo a signature Source # 

seekableSeek Source #

Arguments

:: (HasCallStack, MonadIO m, IsSeekable a, IsCancellable b) 
=> a

seekable: a Seekable.

-> Int64

offset: a goffset.

-> SeekType

type: a SeekType.

-> Maybe b

cancellable: optional Cancellable object, Nothing to ignore.

-> m ()

(Can throw GError)

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 Nothing, then the operation can be cancelled by triggering the cancellable object from another thread. If the operation was cancelled, the error IOErrorEnumCancelled will be returned.

tell

data SeekableTellMethodInfo Source #

Instances

((~) * signature (m Int64), MonadIO m, IsSeekable a) => MethodInfo * SeekableTellMethodInfo a signature Source # 

seekableTell Source #

Arguments

:: (HasCallStack, MonadIO m, IsSeekable a) 
=> a

seekable: a Seekable.

-> m Int64

Returns: the offset from the beginning of the buffer.

Tells the current position within the stream.

truncate

data SeekableTruncateMethodInfo Source #

Instances

((~) * signature (Int64 -> Maybe b -> m ()), MonadIO m, IsSeekable a, IsCancellable b) => MethodInfo * SeekableTruncateMethodInfo a signature Source # 

seekableTruncate Source #

Arguments

:: (HasCallStack, MonadIO m, IsSeekable a, IsCancellable b) 
=> a

seekable: a Seekable.

-> Int64

offset: a goffset.

-> Maybe b

cancellable: optional Cancellable object, Nothing to ignore.

-> m ()

(Can throw GError)

Truncates a stream with a given offset.

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