- data Connection
- connectionAddress :: Connection -> Address
- connectionUUID :: Connection -> UUID
- data ConnectionError
- connect :: Mechanism -> Address -> IO Connection
- connectFirst :: [(Mechanism, Address)] -> IO Connection
- send :: Message a => Connection -> (Serial -> IO b) -> a -> IO (Either MarshalError b)
- receive :: Connection -> IO (Either UnmarshalError ReceivedMessage)
Open a connection to some address, using a given authentication
mechanism. If the connection fails, a
ConnectionError will be thrown.
Try to open a connection to various addresses, returning the first connection which could be successfully opened.
Send a single message, with a generated
Serial. The second parameter
exists to prevent race conditions when registering a reply handler; it
receives the serial the message will be sent with, before it's actually
Only one message may be sent at a time; if multiple threads attempt to send messages in parallel, one will block until after the other has finished.
Receive the next message from the connection, blocking until one is available.
Only one message may be received at a time; if multiple threads attempt to receive messages in parallel, one will block until after the other has finished.