| Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte | 
|---|---|
| License | LGPL-2.1 | 
| Maintainer | Iñaki García Etxebarria | 
| Safe Haskell | None | 
| Language | Haskell2010 | 
GI.GLib.Structs.IOChannel
Contents
- Exported types
- Methods- Overloaded methods
- close
- errorFromErrno
- errorQuark
- flush
- getBufferCondition
- getBufferSize
- getBuffered
- getCloseOnUnref
- getEncoding
- getFlags
- getLineTerm
- init
- newFile
- read
- readChars
- readLine
- readToEnd
- readUnichar
- ref
- seek
- seekPosition
- setBufferSize
- setBuffered
- setCloseOnUnref
- setEncoding
- setFlags
- setLineTerm
- shutdown
- unixGetFd
- unixNew
- unref
- write
- writeChars
- writeUnichar
 
Description
A data structure representing an IO Channel. The fields should be considered private and should only be accessed with the following functions.
Synopsis
- newtype IOChannel = IOChannel (ManagedPtr IOChannel)
- newZeroIOChannel :: MonadIO m => m IOChannel
- noIOChannel :: Maybe IOChannel
- iOChannelClose :: (HasCallStack, MonadIO m) => IOChannel -> m ()
- iOChannelErrorFromErrno :: (HasCallStack, MonadIO m) => Int32 -> m IOChannelError
- iOChannelErrorQuark :: (HasCallStack, MonadIO m) => m Word32
- iOChannelFlush :: (HasCallStack, MonadIO m) => IOChannel -> m IOStatus
- iOChannelGetBufferCondition :: (HasCallStack, MonadIO m) => IOChannel -> m [IOCondition]
- iOChannelGetBufferSize :: (HasCallStack, MonadIO m) => IOChannel -> m Word64
- iOChannelGetBuffered :: (HasCallStack, MonadIO m) => IOChannel -> m Bool
- iOChannelGetCloseOnUnref :: (HasCallStack, MonadIO m) => IOChannel -> m Bool
- iOChannelGetEncoding :: (HasCallStack, MonadIO m) => IOChannel -> m Text
- iOChannelGetFlags :: (HasCallStack, MonadIO m) => IOChannel -> m [IOFlags]
- iOChannelGetLineTerm :: (HasCallStack, MonadIO m) => IOChannel -> Int32 -> m Text
- iOChannelInit :: (HasCallStack, MonadIO m) => IOChannel -> m ()
- iOChannelNewFile :: (HasCallStack, MonadIO m) => [Char] -> Text -> m IOChannel
- iOChannelRead :: (HasCallStack, MonadIO m) => IOChannel -> Text -> Word64 -> Word64 -> m IOError
- iOChannelReadChars :: (HasCallStack, MonadIO m) => IOChannel -> ByteString -> m (IOStatus, ByteString, Word64)
- iOChannelReadLine :: (HasCallStack, MonadIO m) => IOChannel -> m (IOStatus, Text, Word64, Word64)
- iOChannelReadToEnd :: (HasCallStack, MonadIO m) => IOChannel -> m (IOStatus, ByteString)
- iOChannelReadUnichar :: (HasCallStack, MonadIO m) => IOChannel -> m (IOStatus, Char)
- iOChannelRef :: (HasCallStack, MonadIO m) => IOChannel -> m IOChannel
- iOChannelSeek :: (HasCallStack, MonadIO m) => IOChannel -> Int64 -> SeekType -> m IOError
- iOChannelSeekPosition :: (HasCallStack, MonadIO m) => IOChannel -> Int64 -> SeekType -> m IOStatus
- iOChannelSetBufferSize :: (HasCallStack, MonadIO m) => IOChannel -> Word64 -> m ()
- iOChannelSetBuffered :: (HasCallStack, MonadIO m) => IOChannel -> Bool -> m ()
- iOChannelSetCloseOnUnref :: (HasCallStack, MonadIO m) => IOChannel -> Bool -> m ()
- iOChannelSetEncoding :: (HasCallStack, MonadIO m) => IOChannel -> Maybe Text -> m IOStatus
- iOChannelSetFlags :: (HasCallStack, MonadIO m) => IOChannel -> [IOFlags] -> m IOStatus
- iOChannelSetLineTerm :: (HasCallStack, MonadIO m) => IOChannel -> Maybe Text -> Int32 -> m ()
- iOChannelShutdown :: (HasCallStack, MonadIO m) => IOChannel -> Bool -> m IOStatus
- iOChannelUnixGetFd :: (HasCallStack, MonadIO m) => IOChannel -> m Int32
- iOChannelUnixNew :: (HasCallStack, MonadIO m) => Int32 -> m IOChannel
- iOChannelUnref :: (HasCallStack, MonadIO m) => IOChannel -> m ()
- iOChannelWrite :: (HasCallStack, MonadIO m) => IOChannel -> Text -> Word64 -> Word64 -> m IOError
- iOChannelWriteChars :: (HasCallStack, MonadIO m) => IOChannel -> Ptr Word8 -> Int64 -> m (IOStatus, Word64)
- iOChannelWriteUnichar :: (HasCallStack, MonadIO m) => IOChannel -> Char -> m IOStatus
Exported types
Memory-managed wrapper type.
Constructors
| IOChannel (ManagedPtr IOChannel) | 
newZeroIOChannel :: MonadIO m => m IOChannel Source #
Construct a IOChannel struct initialized to zero.
Methods
Overloaded methods
close
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m () | 
Deprecated: (Since version 2.2)Use iOChannelShutdown instead.
Close an IO channel. Any pending data to be written will be
 flushed, ignoring errors. The channel will not be freed until the
 last reference is dropped using iOChannelUnref.
errorFromErrno
iOChannelErrorFromErrno Source #
Arguments
| :: (HasCallStack, MonadIO m) | |
| => Int32 | 
 | 
| -> m IOChannelError | Returns: a  | 
Converts an errno error number to a IOChannelError.
errorQuark
iOChannelErrorQuark :: (HasCallStack, MonadIO m) => m Word32 Source #
No description available in the introspection data.
flush
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m IOStatus | Returns: the status of the operation: One of
    | 
Flushes the write buffer for the GIOChannel.
getBufferCondition
iOChannelGetBufferCondition Source #
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m [IOCondition] | Returns: A  | 
This function returns a IOCondition depending on whether there
 is data to be read/space to write data in the internal buffers in
 the IOChannel. Only the flags IOConditionIn and IOConditionOut may be set.
getBufferSize
iOChannelGetBufferSize Source #
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m Word64 | Returns: the size of the buffer. | 
Gets the buffer size.
getBuffered
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m Bool | Returns:  | 
Returns whether channel is buffered.
getCloseOnUnref
getEncoding
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m Text | Returns: A string containing the encoding, this string is owned by GLib and must not be freed. | 
Gets the encoding for the input/output of the channel.
 The internal encoding is always UTF-8. The encoding Nothing
 makes the channel safe for binary data.
getFlags
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m [IOFlags] | Returns: the flags which are set on the channel | 
Gets the current flags for a IOChannel, including read-only
 flags such as IOFlagsIsReadable.
The values of the flags IOFlagsIsReadable and IOFlagsIsWritable
 are cached for internal use by the channel when it is created.
 If they should change at some later point (e.g. partial shutdown
 of a socket with the UNIX shutdown() function), the user
 should immediately call iOChannelGetFlags to update
 the internal values of these flags.
getLineTerm
init
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m () | 
newFile
Arguments
| :: (HasCallStack, MonadIO m) | |
| => [Char] | 
 | 
| -> Text | 
 | 
| -> m IOChannel | Returns: A  | 
Open a file filename as a IOChannel using mode mode. This
 channel will be closed when the last reference to it is dropped,
 so there is no need to call iOChannelClose (though doing
 so will not cause problems, as long as no attempt is made to
 access the channel after it is closed).
read
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Text | 
 | 
| -> Word64 | 
 | 
| -> Word64 | 
 | 
| -> m IOError | Returns:  | 
Deprecated: (Since version 2.2)Use iOChannelReadChars instead.
Reads data from a IOChannel.
readChars
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> ByteString | 
 | 
| -> m (IOStatus, ByteString, Word64) | Returns: the status of the operation. (Can throw  | 
Replacement for iOChannelRead with the new API.
readLine
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m (IOStatus, Text, Word64, Word64) | Returns: the status of the operation. (Can throw  | 
Reads a line, including the terminating character(s),
 from a IOChannel into a newly-allocated string.
 strReturn will contain allocated memory if the return
 is IOStatusNormal.
readToEnd
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m (IOStatus, ByteString) | Returns:  | 
Reads all the remaining data from the file.
readUnichar
Reads a Unicode character from channel.
 This function cannot be called on a channel with Nothing encoding.
ref
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m IOChannel | Returns: the  | 
Increments the reference count of a IOChannel.
seek
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Int64 | 
 | 
| -> SeekType | 
 | 
| -> m IOError | Returns:  | 
Deprecated: (Since version 2.2)Use iOChannelSeekPosition instead.
Sets the current position in the IOChannel, similar to the standard
 library function fseek().
seekPosition
iOChannelSeekPosition Source #
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Int64 | 
 | 
| -> SeekType | 
 | 
| -> m IOStatus | Returns: the status of the operation. (Can throw  | 
Replacement for iOChannelSeek with the new API.
setBufferSize
iOChannelSetBufferSize Source #
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Word64 | 
 | 
| -> m () | 
Sets the buffer size.
setBuffered
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Bool | 
 | 
| -> m () | 
The buffering state can only be set if the channel's encoding
 is Nothing. For any other encoding, the channel must be buffered.
A buffered channel can only be set unbuffered if the channel's
 internal buffers have been flushed. Newly created channels or
 channels which have returned IOStatusEof
 not require such a flush. For write-only channels, a call to
 g_io_channel_flush () is sufficient. For all other channels,
 the buffers may be flushed by a call to g_io_channel_seek_position ().
 This includes the possibility of seeking with seek type SeekTypeCur
 and an offset of zero. Note that this means that socket-based
 channels cannot be set unbuffered once they have had data
 read from them.
On unbuffered channels, it is safe to mix read and write calls from the new and old APIs, if this is necessary for maintaining old code.
The default state of the channel is buffered.
setCloseOnUnref
iOChannelSetCloseOnUnref Source #
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Bool | 
 | 
| -> m () | 
Whether to close the channel on the final unref of the IOChannel
 data structure. The default value of this is True for channels
 created by g_io_channel_new_file (), and False for all other channels.
Setting this flag to True for a channel you have already closed
 can cause problems when the final reference to the IOChannel is dropped.
setEncoding
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Maybe Text | 
 | 
| -> m IOStatus | Returns:  | 
Sets the encoding for the input/output of the channel. The internal encoding is always UTF-8. The default encoding for the external file is UTF-8.
The encoding Nothing is safe to use with binary data.
The encoding can only be set if one of the following conditions is true:
- The channel was just created, and has not been written to or read from yet.
- The channel is write-only.
- The channel is a file, and the file pointer was just repositioned
 by a call to iOChannelSeekPosition. (This flushes all the internal buffers.)
- The current encoding is Nothingor UTF-8.
- One of the (new API) read functions has just returned IOStatusEof(or, in the case ofiOChannelReadToEnd,IOStatusNormal).
- One of the functions iOChannelReadCharsoriOChannelReadUnicharhas returnedIOStatusAgainorIOStatusError. This may be useful in the case ofConvertErrorIllegalSequence. Returning one of these statuses fromiOChannelReadLine,g_io_channel_read_line_string(), oriOChannelReadToEnddoes not guarantee that the encoding can be changed.
Channels which do not meet one of the above conditions cannot call
 iOChannelSeekPosition with an offset of SeekTypeCur, and, if
 they are "seekable", cannot call iOChannelWriteChars after
 calling one of the API "read" functions.
setFlags
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> [IOFlags] | 
 | 
| -> m IOStatus | Returns: the status of the operation. (Can throw  | 
Sets the (writeable) flags in channel to (flags & IOFlagsSetMask).
setLineTerm
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Maybe Text | 
 | 
| -> Int32 | 
 | 
| -> m () | 
This sets the string that IOChannel uses to determine
 where in the file a line break occurs.
shutdown
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Bool | 
 | 
| -> m IOStatus | Returns: the status of the operation. (Can throw  | 
Close an IO channel. Any pending data to be written will be
 flushed if flush is True. The channel will not be freed until the
 last reference is dropped using iOChannelUnref.
unixGetFd
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m Int32 | Returns: the file descriptor of the  | 
unixNew
Arguments
| :: (HasCallStack, MonadIO m) | |
| => Int32 | 
 | 
| -> m IOChannel | Returns: a new  | 
Creates a new IOChannel given a file descriptor. On UNIX systems
 this works for plain files, pipes, and sockets.
The returned IOChannel has a reference count of 1.
The default encoding for IOChannel is UTF-8. If your application
 is reading output from a command using via pipe, you may need to set
 the encoding to the encoding of the current locale (see
 getCharset) with the iOChannelSetEncoding function.
 By default, the fd passed will not be closed when the final reference
 to the IOChannel data structure is dropped.
If you want to read raw binary data without interpretation, then
 call the iOChannelSetEncoding function with Nothing for the
 encoding argument.
This function is available in GLib on Windows, too, but you should avoid using it on Windows. The domain of file descriptors and sockets overlap. There is no way for GLib to know which one you mean in case the argument you pass to this function happens to be both a valid file descriptor and socket. If that happens a warning is issued, and GLib assumes that it is the file descriptor you mean.
unref
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> m () | 
Decrements the reference count of a IOChannel.
write
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Text | 
 | 
| -> Word64 | 
 | 
| -> Word64 | 
 | 
| -> m IOError | Returns:  | 
Deprecated: (Since version 2.2)Use iOChannelWriteChars instead.
Writes data to a IOChannel.
writeChars
Arguments
| :: (HasCallStack, MonadIO m) | |
| => IOChannel | 
 | 
| -> Ptr Word8 | 
 | 
| -> Int64 | 
 | 
| -> m (IOStatus, Word64) | Returns: the status of the operation. (Can throw  | 
Replacement for iOChannelWrite with the new API.
On seekable channels with encodings other than Nothing or UTF-8, generic
 mixing of reading and writing is not allowed. A call to g_io_channel_write_chars ()
 may only be made on a channel from which data has been read in the
 cases described in the documentation for g_io_channel_set_encoding ().