Safe Haskell | None |
---|---|
Language | Haskell2010 |
Network.TypedProtocol.ReqResp.Client
Contents
Synopsis
- data ReqRespClient req resp m a where
- SendMsgReq :: req -> (resp -> m (ReqRespClient req resp m a)) -> ReqRespClient req resp m a
- SendMsgDone :: m a -> ReqRespClient req resp m a
- reqRespClientPeer :: Monad m => ReqRespClient req resp m a -> Peer (ReqResp req resp) AsClient StIdle m a
- data ReqRespClientPipelined req resp m a where
- ReqRespClientPipelined :: ReqRespSender req resp Z c m a -> ReqRespClientPipelined req resp m a
- data ReqRespSender req resp n c m a where
- SendMsgReqPipelined :: req -> (resp -> m c) -> ReqRespSender req resp (S n) c m a -> ReqRespSender req resp n c m a
- CollectPipelined :: Maybe (ReqRespSender req resp (S n) c m a) -> (c -> ReqRespSender req resp n c m a) -> ReqRespSender req resp (S n) c m a
- SendMsgDonePipelined :: a -> ReqRespSender req resp Z c m a
- reqRespClientPeerPipelined :: Monad m => ReqRespClientPipelined req resp m a -> PeerPipelined (ReqResp req resp) AsClient StIdle m a
Normal client
data ReqRespClient req resp m a where Source #
Constructors
SendMsgReq :: req -> (resp -> m (ReqRespClient req resp m a)) -> ReqRespClient req resp m a | |
SendMsgDone :: m a -> ReqRespClient req resp m a |
reqRespClientPeer :: Monad m => ReqRespClient req resp m a -> Peer (ReqResp req resp) AsClient StIdle m a Source #
Interpret a particular client action sequence into the client side of the
ReqResp
protocol.
Pipelined client
data ReqRespClientPipelined req resp m a where Source #
A request-response client designed for running the ReqResp
protocol in
a pipelined way.
Constructors
ReqRespClientPipelined :: ReqRespSender req resp Z c m a -> ReqRespClientPipelined req resp m a | A |
data ReqRespSender req resp n c m a where Source #
Constructors
SendMsgReqPipelined :: req -> (resp -> m c) -> ReqRespSender req resp (S n) c m a -> ReqRespSender req resp n c m a | Send a |
CollectPipelined :: Maybe (ReqRespSender req resp (S n) c m a) -> (c -> ReqRespSender req resp n c m a) -> ReqRespSender req resp (S n) c m a | |
SendMsgDonePipelined :: a -> ReqRespSender req resp Z c m a | Termination of the req-resp protocol. |
reqRespClientPeerPipelined :: Monad m => ReqRespClientPipelined req resp m a -> PeerPipelined (ReqResp req resp) AsClient StIdle m a Source #
Interpret a pipelined client as a PeerPipelined
on the client side of
the ReqResp
protocol.