-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Socket transport for metro -- -- Please see the README on GitHub at -- https://github.com/Lupino/metro/tree/master/metro-socket#readme @package metro-socket @version 0.1.0.0 module Metro.Socket -- | Basic type for a socket. data Socket -- | Close the socket. This function does not throw exceptions even if the -- underlying system call returns errors. -- -- If multiple threads use the same socket and one uses fdSocket -- and the other use close, unexpected behavior may happen. For -- more information, please refer to the documentation of -- fdSocket. close :: Socket -> IO () listen :: String -> IO Socket connect :: String -> IO Socket getHost :: String -> Maybe String getService :: String -> Maybe String bindTo :: String -> IO Socket getDatagramAddr :: String -> IO (Maybe AddrInfo) module Metro.TP.TCPSocket data TCPSocket tcpSocket :: String -> TransportConfig TCPSocket tcpSocket_ :: Socket -> TransportConfig TCPSocket instance Metro.Class.Transport Metro.TP.TCPSocket.TCPSocket module Metro.TCPServer data TCPServer tcpServer :: String -> ServerConfig TCPServer instance Metro.Class.Servable Metro.TCPServer.TCPServer module Metro.TP.UDPSocket data UDPSocket udpSocket :: String -> TransportConfig UDPSocket udpSocket_ :: TransportConfig BSTransport -> TransportConfig UDPSocket instance Metro.Class.Transport Metro.TP.UDPSocket.UDPSocket module Metro.TP.Socket data Socket socket :: String -> TransportConfig Socket mapTCPSocket :: TransportConfig TCPSocket -> TransportConfig Socket mapUDPSocket :: TransportConfig UDPSocket -> TransportConfig Socket instance Metro.Class.Transport Metro.TP.Socket.Socket module Metro.UDPServer data UDPServer udpServer :: String -> ServerConfig UDPServer newClient :: (MonadUnliftIO m, Transport tp, Show nid, Eq nid, Hashable nid, Eq k, Hashable k, GetPacketId k rpkt, RecvPacket rpkt) => (TransportConfig UDPSocket -> TransportConfig tp) -> String -> nid -> u -> (rpkt -> m Bool) -> SessionT u nid k rpkt tp m () -> ServerT UDPServer u nid k rpkt tp m (Maybe (NodeEnv1 u nid k rpkt tp)) instance Metro.Class.Servable Metro.UDPServer.UDPServer module Metro.SocketServer data SocketServer socketServer :: String -> ServerConfig SocketServer data SSSID TCPSID :: Socket -> SSSID UDPSID :: SockAddr -> SSSID instance Metro.Class.Servable Metro.SocketServer.SocketServer