-- 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 (Native), OS-X 10.5+ (Native), Everything else
-- (Portable Haskell code).
@package sendfile
@version 0.6.1
-- | 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 which accepts 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 -> FilePath -> 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 -> FilePath -> Offset -> ByteCount -> IO ()
-- | Returns the mode that sendfile was compiled with. Mainly for debugging
-- use. | Possible values are WIN32_SENDFILE,
-- LINUX_SENDFILE, FREEBSD_SENDFILE, |
-- DARWIN_SENDFILE, and PORTABLE_SENDFILE.
sendFileMode :: String