{-# LINE 1 "src/System/Socket/Protocol/TCP.hsc" #-} -------------------------------------------------------------------------------- {-# LINE 2 "src/System/Socket/Protocol/TCP.hsc" #-} -- | -- Module : System.Socket.Protocol.TCP -- Copyright : (c) Lars Petersen 2015 -- License : MIT -- -- Maintainer : info@lars-petersen.net -- Stability : experimental -------------------------------------------------------------------------------- module System.Socket.Protocol.TCP where import Foreign.C.Types import System.Socket.Internal.Socket import System.Socket.Internal.SocketOption {-# LINE 18 "src/System/Socket/Protocol/TCP.hsc" #-} data TCP instance Protocol TCP where protocolNumber _ = (6) {-# LINE 23 "src/System/Socket/Protocol/TCP.hsc" #-} -- | If set to True, disable the Nagle's algorithm. -- -- - Also know as @TCP_NODELAY@. data NoDelay = NoDelay Bool deriving (Eq, Ord, Show) instance SocketOption NoDelay where getSocketOption s = (NoDelay . (/=0) :: CInt -> NoDelay) `fmap` unsafeGetSocketOption s (6) (1) {-# LINE 34 "src/System/Socket/Protocol/TCP.hsc" #-} setSocketOption s (NoDelay o) = unsafeSetSocketOption s (6) (1) (if o then 1 else 0 :: CInt) {-# LINE 36 "src/System/Socket/Protocol/TCP.hsc" #-}