- data Connection
- connectionAddress :: Connection -> Address
- connectionUUID :: Connection -> UUID
- data ConnectionError
- connect :: Mechanism -> Address -> IO Connection
- connectFirst :: [(Mechanism, Address)] -> IO Connection
- connectionClose :: Connection -> IO ()
- send :: Message a => Connection -> (Serial -> IO b) -> a -> IO (Either MarshalError b)
- receive :: Connection -> IO (Either UnmarshalError ReceivedMessage)
Documentation
data ConnectionError Source
connect :: Mechanism -> Address -> IO ConnectionSource
Open a connection to some address, using a given authentication
mechanism. If the connection fails, a ConnectionError
will be thrown.
connectFirst :: [(Mechanism, Address)] -> IO ConnectionSource
Try to open a connection to various addresses, returning the first connection which could be successfully opened.
connectionClose :: Connection -> IO ()Source
Close an open connection. Once closed, the Connection
is no longer
valid and must not be used.
send :: Message a => Connection -> (Serial -> IO b) -> a -> IO (Either MarshalError b)Source
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
sent.
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 :: Connection -> IO (Either UnmarshalError ReceivedMessage)Source
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.