biohazard-0.6.13: bioinformatics support library

Safe HaskellNone
LanguageHaskell2010

Bio.Iteratee.IO

Contents

Description

Random and Binary IO with generic Iteratees.

Synopsis

Data

defaultBufSize :: Int Source #

Default buffer size in elements. This was 1024 in Data.Iteratee, which is obviously too small. Since we often want to merge many files, a read should take more time than a seek. This sets the sensible buffer size to somewhat more than one MB.

File enumerators

Handle-based enumerators

enumHandle Source #

Arguments

:: (NullPoint s, ReadableChunk s el, MonadIO m, MonadMask m) 
=> Int

Buffer size (number of elements per read)

-> Handle 
-> Enumerator s m a 

The (monadic) enumerator of a file Handle. This version enumerates over the entire contents of a file, in order, unless stopped by the iteratee. In particular, seeking is not supported. Data is read into a buffer of the specified size.

enumHandleRandom Source #

Arguments

:: (NullPoint s, ReadableChunk s el, MonadIO m, MonadMask m) 
=> Int

Buffer size (number of elements per read)

-> Handle 
-> Enumerator s m a 

The enumerator of a Handle: a variation of enumHandle that supports RandomIO (seek requests). Data is read into a buffer of the specified size.

FileDescriptor based enumerators

enumFd :: forall s el m a. (NullPoint s, ReadableChunk s el, MonadIO m, MonadMask m) => Int -> Fd -> Enumerator s m a Source #

The enumerator of a POSIX File Descriptor. This version enumerates over the entire contents of a file, in order, unless stopped by the iteratee. In particular, seeking is not supported.

enumFdRandom :: forall s el m a. (NullPoint s, ReadableChunk s el, MonadIO m, MonadMask m) => Int -> Fd -> Enumerator s m a Source #

The enumerator of a POSIX File Descriptor: a variation of enumFd that supports RandomIO (seek requests).

Iteratee drivers

fileDriver :: (MonadIO m, MonadMask m, NullPoint s, ReadableChunk s el) => Iteratee s m a -> FilePath -> m a Source #

Process a file using the given Iteratee. This function wraps enumFd as a convenience.

fileDriverVBuf :: (MonadIO m, MonadMask m, NullPoint s, ReadableChunk s el) => Int -> Iteratee s m a -> FilePath -> m a Source #

A version of fileDriver with a user-specified buffer size (in elements).

fileDriverRandom :: (MonadIO m, MonadMask m, NullPoint s, ReadableChunk s el) => Iteratee s m a -> FilePath -> m a Source #

Process a file using the given Iteratee. This function wraps enumFdRandom as a convenience.