-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Simple generic TCP/IP server -- -- This package implements simple generic multithread TCP/IP server. It -- can be used in two ways. First, one can simply call genericServer -- function. Or one can declare an instance of Server class and then run -- server function. @package generic-server @version 0.1 module Network.GenericServer -- | Run TCP/IP server with any worker funciton genericServer :: Int -> (Handle -> IO ByteString) -> (ByteString -> IO ByteString) -> IO () readUntilEmptyLine :: Handle -> IO ByteString -- | Read given amount of bytes from socket waitData :: Int -> Int -> IO ByteString class Server s where { type family Request s; type family Response s; { requestReader _ = readUntilEmptyLine getServer s = return s putServer _ = return () } } toRequest :: Server s => s -> ByteString -> Request s fromResponse :: Server s => s -> Response s -> ByteString requestReader :: Server s => s -> Handle -> IO ByteString worker :: Server s => s -> Request s -> IO (Response s, s) getServer :: Server s => s -> IO s putServer :: Server s => s -> IO () wrap :: (a -> IO b) -> (s -> a -> IO (b, s)) server :: Server s => s -> Int -> IO ()