Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Data.Conduit.Network
Synopsis
- sourceSocket :: MonadIO m => Socket -> ConduitT i ByteString m ()
- sinkSocket :: MonadIO m => Socket -> ConduitT ByteString o m ()
- data AppData
- appSource :: (HasReadWrite ad, MonadIO m) => ad -> ConduitT i ByteString m ()
- appSink :: (HasReadWrite ad, MonadIO m) => ad -> ConduitT ByteString o m ()
- appSockAddr :: AppData -> SockAddr
- appLocalAddr :: AppData -> Maybe SockAddr
- data ServerSettings
- serverSettings :: Int -> HostPreference -> ServerSettings
- runTCPServer :: ServerSettings -> (AppData -> IO ()) -> IO a
- runTCPServerWithHandle :: ServerSettings -> ConnectionHandle -> IO a
- forkTCPServer :: MonadUnliftIO m => ServerSettings -> (AppData -> m ()) -> m ThreadId
- runGeneralTCPServer :: MonadUnliftIO m => ServerSettings -> (AppData -> m ()) -> m a
- data ClientSettings
- clientSettings :: Int -> ByteString -> ClientSettings
- runTCPClient :: ClientSettings -> (AppData -> IO a) -> IO a
- runGeneralTCPClient :: MonadUnliftIO m => ClientSettings -> (AppData -> m a) -> m a
- getPort :: HasPort a => a -> Int
- getHost :: ClientSettings -> ByteString
- getAfterBind :: HasAfterBind a => a -> Socket -> IO ()
- getNeedLocalAddr :: ServerSettings -> Bool
- setPort :: HasPort a => Int -> a -> a
- setHost :: ByteString -> ClientSettings -> ClientSettings
- setAfterBind :: HasAfterBind a => (Socket -> IO ()) -> a -> a
- setNeedLocalAddr :: Bool -> ServerSettings -> ServerSettings
- data HostPreference
Basic utilities
sourceSocket :: MonadIO m => Socket -> ConduitT i ByteString m () Source #
Stream data from the socket.
This function does not automatically close the socket.
Since 0.0.0
sinkSocket :: MonadIO m => Socket -> ConduitT ByteString o m () Source #
Stream data to the socket.
This function does not automatically close the socket.
Since 0.0.0
Simple TCP server/client interface.
Instances
HasReadWrite AppData | |
Defined in Data.Streaming.Network Methods readLens :: Functor f => (IO ByteString -> f (IO ByteString)) -> AppData -> f AppData writeLens :: Functor f => ((ByteString -> IO ()) -> f (ByteString -> IO ())) -> AppData -> f AppData |
appSource :: (HasReadWrite ad, MonadIO m) => ad -> ConduitT i ByteString m () Source #
appSink :: (HasReadWrite ad, MonadIO m) => ad -> ConduitT ByteString o m () Source #
appSockAddr :: AppData -> SockAddr #
appLocalAddr :: AppData -> Maybe SockAddr #
Server
data ServerSettings #
Instances
HasAfterBind ServerSettings | |
Defined in Data.Streaming.Network Methods afterBindLens :: Functor f => ((Socket -> IO ()) -> f (Socket -> IO ())) -> ServerSettings -> f ServerSettings | |
HasPort ServerSettings | |
Defined in Data.Streaming.Network Methods portLens :: Functor f => (Int -> f Int) -> ServerSettings -> f ServerSettings | |
HasReadBufferSize ServerSettings | |
Defined in Data.Streaming.Network Methods readBufferSizeLens :: Functor f => (Int -> f Int) -> ServerSettings -> f ServerSettings |
serverSettings :: Int -> HostPreference -> ServerSettings Source #
runTCPServer :: ServerSettings -> (AppData -> IO ()) -> IO a #
runTCPServerWithHandle :: ServerSettings -> ConnectionHandle -> IO a #
forkTCPServer :: MonadUnliftIO m => ServerSettings -> (AppData -> m ()) -> m ThreadId Source #
Fork a TCP Server
Will fork the runGeneralTCPServer function but will only return from this call when the server is bound to the port and accepting incoming connections. Will return the thread id of the server
Since 1.1.4
runGeneralTCPServer :: MonadUnliftIO m => ServerSettings -> (AppData -> m ()) -> m a Source #
Run a general TCP server
Same as runTCPServer
, except monad can be any instance of
MonadUnliftIO
.
Note that any changes to the monadic state performed by individual client handlers will be discarded. If you have mutable state you want to share among multiple handlers, you need to use some kind of mutable variables.
Since 1.1.3
Client
data ClientSettings #
Instances
HasPort ClientSettings | |
Defined in Data.Streaming.Network Methods portLens :: Functor f => (Int -> f Int) -> ClientSettings -> f ClientSettings | |
HasReadBufferSize ClientSettings | |
Defined in Data.Streaming.Network Methods readBufferSizeLens :: Functor f => (Int -> f Int) -> ClientSettings -> f ClientSettings |
clientSettings :: Int -> ByteString -> ClientSettings Source #
runTCPClient :: ClientSettings -> (AppData -> IO a) -> IO a #
runGeneralTCPClient :: MonadUnliftIO m => ClientSettings -> (AppData -> m a) -> m a Source #
Run a general TCP client
Same as runTCPClient
, except monad can be any instance of MonadUnliftIO
.
Since 1.1.3
Getters
getHost :: ClientSettings -> ByteString #
getAfterBind :: HasAfterBind a => a -> Socket -> IO () #
getNeedLocalAddr :: ServerSettings -> Bool #
Setters
setHost :: ByteString -> ClientSettings -> ClientSettings #
setAfterBind :: HasAfterBind a => (Socket -> IO ()) -> a -> a #
setNeedLocalAddr :: Bool -> ServerSettings -> ServerSettings #
Types
data HostPreference #
Instances
IsString HostPreference | |
Defined in Data.Streaming.Network.Internal Methods fromString :: String -> HostPreference Source # | |
Read HostPreference | |
Defined in Data.Streaming.Network.Internal | |
Show HostPreference | |
Defined in Data.Streaming.Network.Internal | |
Eq HostPreference | |
Defined in Data.Streaming.Network.Internal Methods (==) :: HostPreference -> HostPreference -> Bool Source # (/=) :: HostPreference -> HostPreference -> Bool Source # | |
Ord HostPreference | |
Defined in Data.Streaming.Network.Internal Methods compare :: HostPreference -> HostPreference -> Ordering Source # (<) :: HostPreference -> HostPreference -> Bool Source # (<=) :: HostPreference -> HostPreference -> Bool Source # (>) :: HostPreference -> HostPreference -> Bool Source # (>=) :: HostPreference -> HostPreference -> Bool Source # max :: HostPreference -> HostPreference -> HostPreference Source # min :: HostPreference -> HostPreference -> HostPreference Source # |