module Network.Socket.SendFile.Internal (
sendFile,
sendFile',
sendFileMode
) where
import System.IO (
Handle,
IOMode(..),
hFileSize,
withBinaryFile
)
#if defined(WIN32_SENDFILE)
import Network.Socket.SendFile.Win32 (sendFile')
sendFileMode :: String
sendFileMode = "WIN32_SENDFILE"
#endif
#if defined(LINUX_SENDFILE)
import Network.Socket.SendFile.Linux (sendFile')
sendFileMode :: String
sendFileMode = "LINUX_SENDFILE"
#endif
#if defined(PORTABLE_SENDFILE)
import Network.Socket.SendFile.Portable (sendFile')
sendFileMode :: String
sendFileMode = "PORTABLE_SENDFILE"
#endif
sendFile :: Handle -> FilePath -> IO ()
sendFile outp infp = withBinaryFile infp ReadMode $ \inp -> do
count <- hFileSize inp
sendFile' outp inp count