- 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 Connection Source
A Transport
is anything which can send and receive bytestrings,
typically via a socket.
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.
Close an open connection. Once closed, the Connection
is no longer
valid and must not be used.
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 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.
data ConnectionError Source
connectFirst :: [(Mechanism, Address)] -> IO ConnectionSource
connectionClose :: Connection -> IO ()Source
send :: Message a => Connection -> (Serial -> IO b) -> a -> IO (Either MarshalError b)Source