-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A portable sendfile library -- -- A library which exposes zero-copy sendfile functionality in a portable -- way. If a platform does not support sendfile, a fallback -- implementation in haskell is provided. -- -- Currently supported platforms: Windows 2000+ (Native), Linux 2.6+ -- (Native), FreeBSD (Untested!), Everything else (Haskell). @package sendfile @version 0.5 -- | A cross-platform wrapper for sendfile -- this implements an available -- operating-system call if supported, otherwise it falls back to a -- portable haskell implementation. -- -- Two interfaces are provided for both the unsafe and safe sets of -- functions. The first interface accepts an output socket/handle and the -- path of the file you want to send; sendFile and unsafeSendFile -- comprise this interface. The second interface accepts an output -- socket/handle, a handle to the file you want to send, an offset, and -- the number of bytes you want to send; sendFile' and unsafeSendFile' -- comprise this interface. -- -- For consistent read/write behavior with either sendFile' or -- unsafeSendFile', the input handle should be opened in Binary mode -- rather than Text mode. module Network.Socket.SendFile -- | The length (in bytes) which should be sent type ByteCount = Integer -- | The file offset (in bytes) to start from type Offset = Integer -- | The simplest interface. Simply give it an output Socket and the -- FilePath to the input file. sendFile :: Socket -> FilePath -> IO () -- | A more powerful interface than sendFile, sendFile' accepts a -- Handle for the input file instead of a FilePath, a -- starting offset, and the bytecount to send; the offset and the count -- must be a positive integer. The initial position of the input file -- handle matters not since the offset is absolute, and the final -- position may be different depending on the platform -- no assumptions -- can be made. sendFile' :: Socket -> Handle -> Offset -> ByteCount -> IO () -- | The unsafe version of sendFile which accepts a Handle instead -- of a Socket for the output. It will flush the output handle -- before sending any file data. unsafeSendFile :: Handle -> FilePath -> IO () -- | The unsafe version of sendFile' which accepts a Handle instead -- of a Socket for the output. It will flush the output handle -- before sending any file data. unsafeSendFile' :: Handle -> Handle -> Offset -> ByteCount -> IO () -- | Returns the mode that sendfile was compiled with. Mainly for debugging -- use. Possible values are WIN32_SENDFILE, LINUX_SENDFILE, -- FREEBSD_SENDFILE, and PORTABLE_SENDFILE. sendFileMode :: String