gi-gio-2.0.19: Gio bindings

Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte
License | LGPL-2.1
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com)
Safe Haskell | None
Language | Haskell2010

GI.Gio.Objects.FileOutputStream

Contents

- Exported types
- Methods
  - getEtag
  - queryInfo
  - queryInfoAsync
  - queryInfoFinish

Description

GFileOutputStream provides output streams that write their content to a file.

GFileOutputStream implements `Seekable`, which allows the output stream to jump to arbitrary positions in the file and to truncate the file, provided the filesystem of the file supports these operations.

To find the position of a file output stream, use `seekableTell`. To find out if a file output stream supports seeking, use `seekableCanSeek`.To position a file output stream, use `seekableSeek`. To find out if a file output stream supports truncating, use `seekableCanTruncate`. To truncate a file output stream, use `seekableTruncate`.

Synopsis

- newtype FileOutputStream = FileOutputStream (ManagedPtr FileOutputStream)
- class GObject o => IsFileOutputStream o
- toFileOutputStream :: (MonadIO m, IsFileOutputStream o) => o -> m FileOutputStream
- noFileOutputStream :: Maybe FileOutputStream
- fileOutputStreamGetEtag :: (HasCallStack, MonadIO m, IsFileOutputStream a) => a -> m Text
- fileOutputStreamQueryInfo :: (HasCallStack, MonadIO m, IsFileOutputStream a, IsCancellable b) => a -> Text -> Maybe b -> m FileInfo
- fileOutputStreamQueryInfoAsync :: (HasCallStack, MonadIO m, IsFileOutputStream a, IsCancellable b) => a -> Text -> Int32 -> Maybe b -> Maybe AsyncReadyCallback -> m ()
- fileOutputStreamQueryInfoFinish :: (HasCallStack, MonadIO m, IsFileOutputStream a, IsAsyncResult b) => a -> b -> m FileInfo

# Exported types

newtype FileOutputStream Source #

Memory-managed wrapper type.

Constructors

FileOutputStream (ManagedPtr FileOutputStream) |

Instances

GObject FileOutputStream Source # |
Instance details Defined in GI.Gio.Objects.FileOutputStream Methods gobjectType :: FileOutputStream -> IO GType Source #
IsObject FileOutputStream Source # |
Instance details Defined in GI.Gio.Objects.FileOutputStream
IsSeekable FileOutputStream Source # |
Instance details Defined in GI.Gio.Objects.FileOutputStream
IsFileOutputStream FileOutputStream Source # |
Instance details Defined in GI.Gio.Objects.FileOutputStream
IsOutputStream FileOutputStream Source # |
Instance details Defined in GI.Gio.Objects.FileOutputStream

class GObject o => IsFileOutputStream o Source #

Type class for types which can be safely cast to `FileOutputStream`, for instance with `toFileOutputStream`.

Instances

(GObject a, (UnknownAncestorError FileOutputStream a :: Constraint)) => IsFileOutputStream a Source # |
Instance details Defined in GI.Gio.Objects.FileOutputStream
IsFileOutputStream FileOutputStream Source # |
Instance details Defined in GI.Gio.Objects.FileOutputStream

toFileOutputStream :: (MonadIO m, IsFileOutputStream o) => o -> m FileOutputStream Source #

Cast to `FileOutputStream`, for types for which this is known to be safe. For general casts, use `castTo`.

noFileOutputStream :: Maybe FileOutputStream Source #

A convenience alias for `Nothing` :: `Maybe` `FileOutputStream`.

# Methods

## getEtag

fileOutputStreamGetEtag Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileOutputStream a) |
=> a | `stream`: a `FileOutputStream`.
-> m Text | Returns: the entity tag for the stream.

Gets the entity tag for the file when it has been written. This must be called after the stream has been written and closed, as the etag can change while writing.

## queryInfo

fileOutputStreamQueryInfo Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileOutputStream a, IsCancellable b) |
=> a | `stream`: a `FileOutputStream`.
-> Text | `attributes`: a file attribute query string.
-> Maybe b | `cancellable`: optional `Cancellable` object, `Nothing` to ignore.
-> m FileInfo | Returns: a `FileInfo` for the `stream`, or `Nothing` on error. (Can throw `GError`)

Queries a file output stream for the given `attributes`. This function blocks while querying the stream. For the asynchronous version of this function, see `fileOutputStreamQueryInfoAsync`. While the stream is blocked, the stream will set the pending flag internally, and any other operations on the stream will fail with `IOErrorEnumPending`.

Can fail if the stream was already closed (with `error` being set to `IOErrorEnumClosed`), the stream has pending operations (with `error` being set to `IOErrorEnumPending`), or if querying info is not supported for the stream's interface (with `error` being set to `IOErrorEnumNotSupported`). In all cases of failure, `Nothing` will be returned.

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 set, and `Nothing` will be returned.

## queryInfoAsync

fileOutputStreamQueryInfoAsync Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileOutputStream a, IsCancellable b) |
=> a | `stream`: a `FileOutputStream`.
-> Text | `attributes`: a file attribute query string.
-> Int32 | `ioPriority`: the [I/O priority][gio-GIOScheduler] of the request
-> Maybe b | `cancellable`: optional `Cancellable` object, `Nothing` to ignore.
-> Maybe AsyncReadyCallback | `callback`: callback to call when the request is satisfied
-> m () |

Asynchronously queries the `stream` for a `FileInfo`. When completed, `callback` will be called with a `AsyncResult` which can be used to finish the operation with `fileOutputStreamQueryInfoFinish`.

For the synchronous version of this function, see `fileOutputStreamQueryInfo`.

## queryInfoFinish

fileOutputStreamQueryInfoFinish Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileOutputStream a, IsAsyncResult b) |
=> a | `stream`: a `FileOutputStream`.
-> b | `result`: a `AsyncResult`.
-> m FileInfo | Returns: A `FileInfo` for the finished query. (Can throw `GError`)

Finalizes the asynchronous query started by `fileOutputStreamQueryInfoAsync`.