Network.Abstract
Description
Generalize a network connection to a sink and source
- type IOE = ErrorT IOError IO
- data Server i o = Server HostName PortID
- class WriteMessage i where
- writeMessage :: Handle -> i -> IOE ()
- class ReadMessage o where
- readMessage :: Handle -> IOE o
- class Network n where
- connect :: (WriteMessage i, ReadMessage o) => n -> Server i o -> IOE (Connection i o)
- data Connection i o = Connection {}
- data ANetwork = forall n . Network n => ANetwork n
- data Internet = Internet
- class MonadIO' m => NetworkIO m where
Documentation
A server receives messages of type i and returns messages of type o.
class WriteMessage i whereSource
Serialize message over handle
Methods
writeMessage :: Handle -> i -> IOE ()Source
Instances
WriteMessage Message |
class ReadMessage o whereSource
Deserialize message from handle
Methods
readMessage :: Handle -> IOE oSource
Instances
ReadMessage Response |
A network controls connections to other hosts. It may want to overide to log messages or play them back.
Methods
connect :: (WriteMessage i, ReadMessage o) => n -> Server i o -> IOE (Connection i o)Source
Connect to Server returning the send sink and receive source, throw IOError if can't connect.
data Connection i o Source
Normal Network instance, i.e. no logging or replay
Constructors
Internet |