streamly-0.9.0: src/Streamly/Network/Inet/TCP.hs
-- |
-- Module : Streamly.Network.Server
-- Copyright : (c) 2019 Composewell Technologies
--
-- License : BSD3
-- Maintainer : streamly@composewell.com
-- Stability : released
-- Portability : GHC
--
-- Combinators to build Inet/TCP clients and servers.
--
-- >>> import qualified Streamly.Network.Inet.TCP as TCP
--
module Streamly.Network.Inet.TCP
(
-- * Accept Connections
-- ** Unfolds
acceptorOnAddr
, acceptorOnPort
, acceptorOnPortLocal
-- * Connect to Servers
, connect
{-
-- XXX Expose this as a pipe when we have pipes.
-- * Transformation
-- , pipeBytes
-- ** Sink Servers
-- These abstractions can be applied to any setting where we need to do a
-- sink processing of multiple streams e.g. output from multiple processes
-- or data coming from multiple files.
-- handle connections concurrently using a specified fold
-- , handleConnections
-- handle frames concurrently using a specified fold
, handleFrames
-- merge frames from all connection into a single stream. Frames can be
-- created by a specified fold.
, mergeFrames
-- * UDP Servers
, datagrams
, datagramsOn
-}
-- * Deprecated
, acceptOnAddr
, acceptOnPort
, acceptOnPortLocal
)
where
import Control.Monad.IO.Class (MonadIO(..))
import Data.Word (Word8)
import Network.Socket (Socket, PortNumber)
import Streamly.Internal.Data.Unfold.Type (Unfold(..))
import Streamly.Internal.Network.Inet.TCP
hiding (acceptOnAddr, acceptOnPort, acceptOnPortLocal)
{-# DEPRECATED acceptOnAddr "Please use 'acceptorOnAddr' instead" #-}
{-# INLINE acceptOnAddr #-}
acceptOnAddr
:: MonadIO m
=> Unfold m ((Word8, Word8, Word8, Word8), PortNumber) Socket
acceptOnAddr = acceptorOnAddr
{-# DEPRECATED acceptOnPort "Please use 'acceptorOnPort' instead" #-}
{-# INLINE acceptOnPort #-}
acceptOnPort :: MonadIO m => Unfold m PortNumber Socket
acceptOnPort = acceptorOnPort
{-# DEPRECATED acceptOnPortLocal "Please use 'acceptorOnPortLocal' instead" #-}
{-# INLINE acceptOnPortLocal #-}
acceptOnPortLocal :: MonadIO m => Unfold m PortNumber Socket
acceptOnPortLocal = acceptorOnPortLocal