-- 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