ouroboros-network:framework
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Network.Protocol.Handshake.Client

Synopsis

Documentation

handshakeClientPeer :: forall (m :: Type -> Type) vNumber vData r. (Monad m, Ord vNumber) => VersionDataCodec vNumber vData -> (vData -> vData -> Accept vData) -> Versions vNumber vData r -> Client (Handshake vNumber Term) 'NonPipelined ('StPropose :: Handshake vNumber Term) m (Either (HandshakeProtocolError vNumber) (HandshakeResult r vNumber vData)) Source #

Handshake client which offers Versions vNumber vData to the remote peer.

handshakeClientPeerWithRTT Source #

Arguments

:: forall vNumber (m :: Type -> Type) vData r. (Ord vNumber, MonadMonotonicTime m) 
=> VersionDataCodec vNumber vData 
-> (vData -> vData -> Accept vData) 
-> Versions vNumber vData r 
-> Client (Handshake vNumber Term) 'NonPipelined ('StPropose :: Handshake vNumber Term) m (Either (HandshakeProtocolError vNumber) (HandshakeResult r vNumber vData), DiffTime)

the client which offers the versions, does the negotiation and provides round trip time

Handshake client which offers Versions vNumber vData to the remote peer and computes round trip time.

TODO: GADT encoding of the client (Handshake.Client module).

decodeQueryResult :: (vNumber -> bytes -> Either Text vData) -> Map vNumber bytes -> HandshakeResult r vNumber vData Source #

encodeVersions :: forall vNumber r vParams vData. (vNumber -> vData -> vParams) -> Versions vNumber vData r -> Map vNumber vParams Source #

acceptOrRefuse Source #

Arguments

:: Ord vNumber 
=> VersionDataCodec vNumber vData 
-> (vData -> vData -> Accept vData) 
-> Versions vNumber vData r 
-> Map vNumber Term

proposed versions received either with MsgProposeVersions or MsgReplyVersions

-> Either (RefuseReason vNumber) (r, vNumber, vData)