Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
GI.Gio.Interfaces.Seekable
Description
GSeekable
is implemented by streams (implementations of
InputStream
or 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
`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.
Synopsis
- newtype Seekable = Seekable (ManagedPtr Seekable)
- class (GObject o, IsDescendantOf Seekable o) => IsSeekable o
- toSeekable :: (MonadIO m, IsSeekable o) => o -> m Seekable
- type family ResolveSeekableMethod (t :: Symbol) o where ...
- data SeekableCanSeekMethodInfo
- seekableCanSeek :: (HasCallStack, MonadIO m, IsSeekable a) => a -> m Bool
- data SeekableCanTruncateMethodInfo
- seekableCanTruncate :: (HasCallStack, MonadIO m, IsSeekable a) => a -> m Bool
- data SeekableSeekMethodInfo
- seekableSeek :: (HasCallStack, MonadIO m, IsSeekable a, IsCancellable b) => a -> Int64 -> SeekType -> Maybe b -> m ()
- data SeekableTellMethodInfo
- seekableTell :: (HasCallStack, MonadIO m, IsSeekable a) => a -> m Int64
- data SeekableTruncateMethodInfo
- seekableTruncate :: (HasCallStack, MonadIO m, IsSeekable a, IsCancellable b) => a -> Int64 -> Maybe b -> m ()
Exported types
Memory-managed wrapper type.
Constructors
Seekable (ManagedPtr Seekable) |
Instances
class (GObject o, IsDescendantOf Seekable o) => IsSeekable o Source #
Type class for types which can be safely cast to Seekable
, for instance with toSeekable
.
Instances
(GObject o, IsDescendantOf Seekable o) => IsSeekable o Source # | |
Defined in GI.Gio.Interfaces.Seekable |
toSeekable :: (MonadIO m, IsSeekable o) => o -> m Seekable Source #
Methods
Click to display all available methods, including inherited ones
Methods
bindProperty, bindPropertyFull, canSeek, canTruncate, forceFloating, freezeNotify, getv, isFloating, notify, notifyByPspec, ref, refSink, runDispose, seek, stealData, stealQdata, tell, thawNotify, truncate, unref, watchClosure.
Getters
getData, getProperty, getQdata.
Setters
type family ResolveSeekableMethod (t :: Symbol) o where ... Source #
Equations
canSeek
data SeekableCanSeekMethodInfo Source #
Instances
(signature ~ m Bool, MonadIO m, IsSeekable a) => OverloadedMethod SeekableCanSeekMethodInfo a signature Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo SeekableCanSeekMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods |
Arguments
:: (HasCallStack, MonadIO m, IsSeekable a) | |
=> a |
|
-> m Bool |
Tests if the stream supports the SeekableIface
.
canTruncate
data SeekableCanTruncateMethodInfo Source #
Instances
(signature ~ m Bool, MonadIO m, IsSeekable a) => OverloadedMethod SeekableCanTruncateMethodInfo a signature Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo SeekableCanTruncateMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods |
Arguments
:: (HasCallStack, MonadIO m, IsSeekable a) | |
=> a |
|
-> m Bool | Returns: |
Tests if the length of the stream can be adjusted with
seekableTruncate
.
seek
data SeekableSeekMethodInfo Source #
Instances
(signature ~ (Int64 -> SeekType -> Maybe b -> m ()), MonadIO m, IsSeekable a, IsCancellable b) => OverloadedMethod SeekableSeekMethodInfo a signature Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo SeekableSeekMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods |
Arguments
:: (HasCallStack, MonadIO m, IsSeekable a, IsCancellable b) | |
=> a |
|
-> Int64 |
|
-> SeekType |
|
-> Maybe b |
|
-> m () | (Can throw |
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) => OverloadedMethod SeekableTellMethodInfo a signature Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo SeekableTellMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods |
Arguments
:: (HasCallStack, MonadIO m, IsSeekable a) | |
=> a |
|
-> m Int64 | Returns: the (positive or zero) offset from the beginning of the buffer, zero if the target is not seekable. |
Tells the current position within the stream.
truncate
data SeekableTruncateMethodInfo Source #
Instances
(signature ~ (Int64 -> Maybe b -> m ()), MonadIO m, IsSeekable a, IsCancellable b) => OverloadedMethod SeekableTruncateMethodInfo a signature Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo SeekableTruncateMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Interfaces.Seekable Methods |
Arguments
:: (HasCallStack, MonadIO m, IsSeekable a, IsCancellable b) | |
=> a |
|
-> Int64 |
|
-> Maybe b |
|
-> m () | (Can throw |
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 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.