FileIOStream

gio.file_iostream.FileIOStream provides I/O streams that both read and write to the same file handle.

gio.file_iostream.FileIOStream implements gio.seekable.Seekable, which allows the I/O 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 I/O stream, use gio.seekable.Seekable.tell.

To find out if a file I/O stream supports seeking, use gio.seekable.Seekable.canSeek. To position a file I/O stream, use gio.seekable.Seekable.seek. To find out if a file I/O stream supports truncating, use gio.seekable.Seekable.canTruncate. To truncate a file I/O stream, use gio.seekable.Seekable.truncate.

The default implementation of all the gio.file_iostream.FileIOStream operations and the implementation of gio.seekable.Seekable just call into the same operations on the output stream.

Members

Functions

getEtag
string getEtag()

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
gio.file_info.FileInfo queryInfo(string attributes, gio.cancellable.Cancellable cancellable)

Queries a file io stream for the given attributes. This function blocks while querying the stream. For the asynchronous version of this function, see gio.file_iostream.FileIOStream.queryInfoAsync. While the stream is blocked, the stream will set the pending flag internally, and any other operations on the stream will fail with gio.types.IOErrorEnum.Pending.

queryInfoAsync
void queryInfoAsync(string attributes, int ioPriority, gio.cancellable.Cancellable cancellable, gio.types.AsyncReadyCallback callback)

Asynchronously queries the stream for a #GFileInfo. When completed, callback will be called with a #GAsyncResult which can be used to finish the operation with gio.file_iostream.FileIOStream.queryInfoFinish.

queryInfoFinish
gio.file_info.FileInfo queryInfoFinish(gio.async_result.AsyncResult result)

Finalizes the asynchronous query started by gio.file_iostream.FileIOStream.queryInfoAsync.

Mixed In Members

From mixin SeekableT!()

canSeek
bool canSeek()

Tests if the stream supports the #GSeekableIface.

canTruncate
bool canTruncate()

Tests if the length of the stream can be adjusted with gio.seekable.Seekable.truncate.

seek
bool seek(long offset, glib.types.SeekType type, gio.cancellable.Cancellable cancellable)

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

tell
long tell()

Tells the current position within the stream.

truncate
bool truncate(long offset, gio.cancellable.Cancellable cancellable)

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.

Inherited Members

From IOStream

spliceFinish
bool spliceFinish(gio.async_result.AsyncResult result)

Finishes an asynchronous io stream splice operation.

clearPending
void clearPending()

Clears the pending flag on stream.

close
bool close(gio.cancellable.Cancellable cancellable)

Closes the stream, releasing resources related to it. This will also close the individual input and output streams, if they are not already closed.

closeAsync
void closeAsync(int ioPriority, gio.cancellable.Cancellable cancellable, gio.types.AsyncReadyCallback callback)

Requests an asynchronous close of the stream, releasing resources related to it. When the operation is finished callback will be called. You can then call gio.iostream.IOStream.closeFinish to get the result of the operation.

closeFinish
bool closeFinish(gio.async_result.AsyncResult result)

Closes a stream.

getInputStream
gio.input_stream.InputStream getInputStream()

Gets the input stream for this object. This is used for reading.

getOutputStream
gio.output_stream.OutputStream getOutputStream()

Gets the output stream for this object. This is used for writing.

hasPending
bool hasPending()

Checks if a stream has pending actions.

isClosed
bool isClosed()

Checks if a stream is closed.

setPending
bool setPending()

Sets stream to have actions pending. If the pending flag is already set or stream is closed, it will return false and set error.

spliceAsync
void spliceAsync(gio.iostream.IOStream stream2, gio.types.IOStreamSpliceFlags flags, int ioPriority, gio.cancellable.Cancellable cancellable, gio.types.AsyncReadyCallback callback)

Asynchronously splice the output stream of stream1 to the input stream of stream2, and splice the output stream of stream2 to the input stream of stream1.

From Seekable

canSeek
bool canSeek()

Tests if the stream supports the #GSeekableIface.

canTruncate
bool canTruncate()

Tests if the length of the stream can be adjusted with gio.seekable.Seekable.truncate.

seek
bool seek(long offset, glib.types.SeekType type, gio.cancellable.Cancellable cancellable)

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

tell
long tell()

Tells the current position within the stream.

truncate
bool truncate(long offset, gio.cancellable.Cancellable cancellable)

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.